Performances sur shootout

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Performances sur shootout

Bertrand Mansion-2
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
Reply | Threaded
Open this post in threaded view
|

Re: Performances sur shootout

Serge Stinckwich
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
Reply | Threaded
Open this post in threaded view
|

Re: Performances sur shootout

Jean-François LEFEVRE
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
Reply | Threaded
Open this post in threaded view
|

Re: Performances sur shootout

Nicolas Cellier-3

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


_______________________________________________
Squeak-fr mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr
Reply | Threaded
Open this post in threaded view
|

Re: Re: Performances sur shootout

Serge Stinckwich
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