Bonjour,
Je souhaitais savoir s'il y avait des raisons "triviales" pour lesquelles les performances de Squeak étaient aussi "faibles" comparées à d'autres langages ou d'autres versions de Smalltalk ? Je m'appuie sur les résultats suivants: <http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=squeak&lang2=vw > qui ne sont pas forcément corrects, d'où ma question. J'ai comparé avec Lua qui est mon langage de prédilection, mais les performances sont également "faibles" par rapport à d'autres langages de script comme Python. Merci d'avance, -- Bertrand Mansion Mamasam Work : http://www.mamasam.com Blog : http://golgote.freeflux.net _______________________________________________ Squeak-fr mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr |
Le 11 juin 2008 11:05, Bertrand Mansion <[hidden email]> a écrit :
> Bonjour, > > Je souhaitais savoir s'il y avait des raisons "triviales" pour lesquelles > les performances de Squeak étaient aussi "faibles" comparées à d'autres > langages ou d'autres versions de Smalltalk ? Je m'appuie sur les résultats > suivants: > <http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=squeak&lang2=vw> > qui ne sont pas forcément corrects, d'où ma question. J'ai comparé avec Lua > qui est mon langage de prédilection, mais les performances sont également > "faibles" par rapport à d'autres langages de script comme Python. > Bonjour, VW est une implémentation commerciale très efficace de Smalltalk, qui utilise normalement un JIT. C'est normal qu'elle soit bcp plus performante que la VM de Squeak. Les différences entre Squeak et Python sont bcp plus faible. Squeak est souvent plus rapide que Ruby. Après il faudrait faire une analyse fine : quel compilateur gcc utilisé pour la VM, comment sont réalisé les benchmarks. Le problème des bench c'est qu'il mesure des performances sur des problèmes types qui ne reflètent pas forcement un usage quotidien. Cordialement, -- Serge Stinckwich Smalltalkers do: [:it | All with: Class, (And love: it)] http://blog.doesnotunderstand.org/ _______________________________________________ Squeak-fr mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr |
Bonjour,
J'ajouterai deux choses : - les benchs en question sont écrits par différentes personnes plus ou moins habile à optimiser le code, c'est à dire à pratiquer ce sport qu'est la chasse à la microseconde. Le choix d'un message plutôt qu'un autre peut entrainer des 'dramatic improves' comme disent les américains - la plupart des ces benchs semblent basés sur du calcul, en général en double précision. Les calculs sont par nature couteux en Smalltalk puisque traités par envoi de message et gérés réellement comme des objets dans le cas des float et double. Pour optimiser, la plupart de ces messages sont des primitives mais on ne se rend pas toujours compte si on passe par une primitive ou pas. Prenons par exemple : 2.2 + 3 En VisualWorks comme en Squeak on tombe directement sur une primitive Inversons maintenant : 3 + 2.2 En VisualWorks comme en Squeak, la primitive échoue et on part sur du code Smalltalk Ici la gestion est différente en Squeak et VisualWorks. VisualWorks utilise une technique de double dispatching (nécessite de définir beaucoup de messages mais on retombe rapidement sur une primitive). Dans le cas de Squeak, que je connais beaucoup moins, il semble qu'on passe par un peu plus de message (test puis conversion suivie d'un perform:) Sans doute, ces quelques messages insignifiant finissent par peser dans un bench qui fait des centaine de milliers de messages de calcul. En tout cas, merci pour m'avoir fait découvrir ce site de bench ;-) Jean-François LEFEVRE Serge Stinckwich a écrit : > Le 11 juin 2008 11:05, Bertrand Mansion <[hidden email]> a écrit : > >> Bonjour, >> >> Je souhaitais savoir s'il y avait des raisons "triviales" pour lesquelles >> les performances de Squeak étaient aussi "faibles" comparées à d'autres >> langages ou d'autres versions de Smalltalk ? Je m'appuie sur les résultats >> suivants: >> <http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=squeak&lang2=vw> >> qui ne sont pas forcément corrects, d'où ma question. J'ai comparé avec Lua >> qui est mon langage de prédilection, mais les performances sont également >> "faibles" par rapport à d'autres langages de script comme Python. >> >> > > Bonjour, > VW est une implémentation commerciale très efficace de Smalltalk, qui > utilise normalement un JIT. C'est normal qu'elle soit bcp plus > performante que la VM de Squeak. > Les différences entre Squeak et Python sont bcp plus faible. Squeak > est souvent plus rapide que Ruby. > Après il faudrait faire une analyse fine : quel compilateur gcc > utilisé pour la VM, comment sont réalisé les benchmarks. Le problème > des bench c'est qu'il mesure des performances sur des problèmes types > qui ne reflètent pas forcement un usage quotidien. > > Cordialement, > _______________________________________________ Squeak-fr mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr |
Jean-François LEFEVRE <jflefevre@...> writes: > > Bonjour, > > J'ajouterai deux choses : > - les benchs en question sont écrits par différentes personnes plus ou > moins habile à optimiser > le code, c'est à dire à pratiquer ce sport qu'est la chasse à la > microseconde. Le choix d'un > message plutôt qu'un autre peut entrainer des 'dramatic improves' > comme disent les américains > (optimisation du ByteCode) peuvent aussi faire des différences importantes. Cf. http://lists.squeakfoundation.org/pipermail/squeak-dev/2008-March/126688.html Nicolas _______________________________________________ Squeak-fr mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr |
2008/6/12 nicolas cellier <[hidden email]>:
> > Jean-François LEFEVRE <jflefevre@...> writes: > >> >> Bonjour, >> >> J'ajouterai deux choses : >> - les benchs en question sont écrits par différentes personnes plus ou >> moins habile à optimiser >> le code, c'est à dire à pratiquer ce sport qu'est la chasse à la >> microseconde. Le choix d'un >> message plutôt qu'un autre peut entrainer des 'dramatic improves' >> comme disent les américains >> > > J'ajouterai encore que des spécificités de tel ou tel compilateur Smalltalk > (optimisation du ByteCode) peuvent aussi faire des différences importantes. > > Cf. http://lists.squeakfoundation.org/pipermail/squeak-dev/2008-March/126688.html Nicolas, tu devrais proposer des modifications à shootout ;-) -- Serge Stinckwich Smalltalkers do: [:it | All with: Class, (And love: it)] http://blog.doesnotunderstand.org/ _______________________________________________ Squeak-fr mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr |
Free forum by Nabble | Edit this page |