Domanda

Per quanto riguarda le prestazioni, come si confronta Python 3 con Python 2.x?

È stato utile?

Soluzione

3.0 è più lento di 2.5 sui benchmark ufficiali. Da " What & # 8217; s Novità in Python 3.0 " :

  

Il risultato netto di 3.0   generalizzazioni è che Python 3.0   gestisce il benchmark del pystone intorno al 10%   più lento di Python 2.5. Più probabilmente   la causa principale è la rimozione di   involucro speciale per piccoli numeri interi.   C'è spazio per migliorare, ma è così   accadrà dopo il rilascio di 3.0!

Altri suggerimenti

Direi che qualsiasi differenza sarà inferiore a banale. Ad esempio, il ciclo su un elenco sarà esattamente lo stesso.

L'idea alla base di Python 3 è di ripulire la sintassi del linguaggio stesso - rimuovere elementi ambigui come tranne Exception1, Exception2 , ripulire i moduli standard (no urllib, urllib2, httplib etc).

Non c'è davvero molto che puoi fare per migliorare le sue prestazioni, anche se immagino che cose come la garbage collection e il codice di gestione della memoria avranno avuto qualche modifica, ma non sarà un "wow, la mia generazione di statistiche del database il codice viene completato in metà tempo! " miglioramento - questo è qualcosa che ottieni migliorando il codice, piuttosto che la lingua!

In realtà, l'esecuzione della lingua è irrilevante: tutte le lingue interpretate funzionano sostanzialmente alla stessa velocità. Perché trovo Python "più veloce" sono tutti i moudles integrati e la sintassi piacevole da scrivere - qualcosa che è stato migliorato in Python3, quindi immagino in questi termini, sì, le prestazioni di python3 sono migliori di python2.x. .

La libreria IO è stata completamente riprogettata e la nuova implementazione è in puro Python. Sebbene si tratti di un miglioramento funzionale, attualmente è molto più lento. Si sta lavorando per riscrivere la maggior parte del nuovo sistema in C. Per i dettagli, consultare questi bug reports .

Penso che alla fine sia ancora troppo presto per fare quel tipo di confronto. Attendi fino a quando non è uscito dalla beta prima di confrontarlo. L'interprete verrà probabilmente lucidato enormemente prima della pubblicazione, ma nel complesso penso che per la maggior parte degli usi le prestazioni sarebbero comparabili e se stai eseguendo un'app veramente attenta alla velocità, Python è davvero il linguaggio giusto da usare?

A meno che non ci siano piani per una nuova VM di qualche tipo (e non ho sentito parlare di tali piani), c'è tutta la ragione per credere che a lungo termine le prestazioni di Py3K saranno, almeno asintoticamente, uguali quello di 2.5

Potrebbero essere necessari alcuni mesi, ma alla fine accadrà, poiché nulla delle nuove funzionalità di Py3k è intrinsecamente meno performante.

Per concludere, non penso che ci sia posto per preoccuparsene. Né sperare in un grande miglioramento di qualche tipo.

Ora non lo faccio più velocemente, ma devo aspettarmi che alla fine sarà perché è lì che accadranno i nuovi lavori di performance e non tutto il backport.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top