Tento soubor má velikost necelých 200kB, což je v ostrém kontrastu s moderními interpretry Pythonu, v nichž velikost interpretru dosahuje 39MB, což je více než 200× více
39MB? Interpreter v Debianu 13 má necelých 7MB:
ls -l `which python3.13`
-rwxr-xr-x 1 root root 6828688 25. čen 20.55 /usr/bin/python3.13
záleží na tom, jestli se po překladu ještě stripují symboly. V Pythonu 3.13/3.14 po trojici ./configure & make & sudo make install bude mít binárka debug symboly a pěkně naroste, defaultně je skutečně takto nafouknutá. Samozřejmě to můžeme porovnávat i stripnuté atd., pořád však má ten interpret (+runtime) řádově víc, než v 0.9.1.
Nárůst je pěkný, ale jak píšu v jiné větvi, u starého Pythonu tvoří při stejné optimalizaci -O3 při kompilaci debug informace cca 13 % u nového přes 80 %. Porovnání by mělo být u vlastních interpreterů, ne u toho, kolik debug infa to dokáže vygenerovat.
Každopádně díky za další skvělý článek, těším se na další.
Asi zalezi na tom co je linkovano dynaickya co staticky?
HAdam co slinkoval tisnik byla plne staticky linkovana binarka. To co mas ty bude nejak dynamicka ?
Fedorka:
```
ls -l /usr/bin/python3.13
-rwxr-xr-x. 1 root root 11704 Aug 14 02:00 /usr/bin/python3.13
```
tedy pouhych 12k.... `/usr/bin/python3.13: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=53a9c612272faab67c9cb9166575b1726a625502, for GNU/Linux 3.2.0, stripped`
Binarka z upstreamu se mi nejak nepodarila najit a buildit se mi to nechce.. Python opravdu nema standalone binarky pro linux? (ani widlacky zip, jen msi?), ani nightly?
Staticky selfbuild pak vypada takto:
ls -l ./python
-rwxr-xr-x. 1 usr usr 34340224 Oct 23 09:10 ./python
Python-3.14.0 / $ file ./python
./python: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=67e85ab265ea131cf226a6dd011b1f3b6e41fc8b, for GNU/Linux 3.2.0, with debug_info, not stripped
Tedy 34mega....
Pokud použiješ bubblesort, znamená to, že ti na rychlosti nezáleží. Nebo, že máš taková data, při kterých bude bubblesort nejrychlejší ze všech známých algoritmů. Ale můžeš zkusit zrychlit sleepsort ;-)
from os import fork
from sys import argv
from time import sleep
pole=[]
for i in range(1,len(argv)): pole.append(int(argv[i]))
m=min(pole)
for n in pole:
if not fork():
sleep(n-m)
print(n)
exit()
sleep(max(pole)-m)