Wszystkie programy najpierw wykonują sito Eratostenesa na pierwszych N liczbach, a następnie wrzucają kolejne liczby pierwsze na jakąś dynamiczną strukturę danych (odpowiednio ArrayList, Vector i List).
- Linux 5.13.0-35-generic x86_64
- javac 17.0.2
- c++ (Ubuntu 9.4.0-1ubuntu1~20.04) 9.4.0
- Python 3.8.10
Nie używałem flagi -Xprof. Nie działa ona w java 17.
2^27 było największym rozmiarem tablicy akceptowalnym przez Javę.
| Komenda wywołania | N=2^27 | N=2^20 | N=2^10 |
|---|---|---|---|
| time java SitoStatic | real 2m9,925s user 7m45,243s sys 0m1,377s |
real 0m0,695s user 0m2,260s sys 0m0,040s |
real 0m0,063s user 0m0,031s sys 0m0,018s |
| time java -Xint SitoStatic | real 3m59,340s user 10m17,664s sys 0m1,748s |
real 0m1,646s user 0m3,245s sys 0m0,024s |
real 0m0,062s user 0m0,031s sys 0m0,010s |
| g++ sito_static.cpp -O3 -o sito_static.exe time ./sito_static.exe |
real 0m5,110s user 0m4,887s sys 0m0,208s |
real 0m0,025s user 0m0,016s sys 0m0,008s |
real 0m0,006s user 0m0,006s sys 0m0,000s |
| time python3 sitoStatic.py | real 1m33,049s user 1m28,517s sys 0m1,183s |
real 0m0,676s user 0m0,662s sys 0m0,013s |
real 0m0,038s user 0m0,023s sys 0m0,015s |