VMProfiler et le profilage de code

3 octobre 2017

J’avoue honteusement que cette annonce est passée sous mon radar. Tout autant que les articles subséquents. Un nouveau profiler développé par Sophie Kaleba (son blogue est ici) est maintenant disponible pour Pharo.

En préambule, elle vous explique comment obtenir le projet et l’installer dans votre image ainsi qu’elle vous fait un rapide survol de ce que l’outil peut faire et toutes les statistiques qu’il est en mesure de vous offrir.

Le premier article vous introduit au fonctionnement et aux fonctionnalité de base de l’outil.

Le deuxième article détaille les différentes informations relatives au temps d’exécution du code Pharo.

Finalement, le dernier article porte sur les autres données fournies par le profiler tels que la mémoire consommée/disponible, le garbage collection, les événements de la VM, etc.

Bref, VMProfiler est un outil vital quand vient le temps d’optimiser la performance de votre application!


Apprendre à programmer

10 Mai 2017

Vous désirez apprendre et/ou apprivoiser un langage de programmation, un système d’exploitation, une base de données, un shell, etc ?  Vous y songez sérieusement mais vous craignez d’avoir à installer une tonne de trucs sur votre ordinateur pour satisfaire votre curiosité?  Vous y songez mais, malheureusement, ce que vous désirez n’est pas disponible pour votre système d’exploitation?  Vous y songez mais l’installation de tout ce qu’il vous faudrait vous semble compliquée?

Ne cherchez plus! TutorialsPoint.com vous offre l’environnement en ligne CodingGround !  Tous les environnements en ligne ainsi que les tutoriels en ligne sont gratuits en plus!

Qu’est-ce que CodingGround ?  C’est un environnement de développement minimal en ligne vous permettant d’éditer, de compiler et d’exécuter du code.  C’est une machine virtuelle qui vous offre aussi un shell Linux et un browser (pour tester votre PHP, HTML ou CCS par exemple). Pour les environnements qui le supportent, il est également possible de changer les options de compilation. On peut aussi ouvrir simultanément plusieurs fichiers source, scripts, shells, browsers, etc.

CodingGround vous offre en plus de sauvergarder, importer, exporter, partager et lire tous vos projets avec GitHub, DropBox, OneDrive et GoogleDrive!  Vous pouvez aussi simplement garder tous vos projets sur votre ordinateur!

Quels sont les langage de programmation, les systèmes d’exploitation, les bases de données, les outils de développements que CodingGround offre?  Une tonne!

Liste des terminaux (shell) en ligne

Liste des IDE en ligne

 

 

 

 

 


Paramétrer le garbage collector de Pharo

15 mars 2017

Un excellent article de Clément Béra sur les subtilitées, plus ou moins connues, des paramètres du garbage collector dans Pharo.  L’article est encore plus intéressant du fait qu’il aborde le sujet avec des cas concrets!


Dolphin

5 mars 2016

Pour ceux qui en auraient raté l’annonce, Dolphin Smalltalk (version 7) est maintenant open source.

Les packages/contributions sont maintenant sur GitHub ici, le wiki est ici,  le Gitter (l’équivalent de IRC mais pour GitHub) est ici, et finalement la branche de développement de Dolphin (image et machine virtuelle) sont ici.

Vous voulez convertir du code d’un autre dialecte de Smalltalk pour l’importer dans Dolphin?  Vous trouverez très certainement une implémentation de SIF (Smalltalk Interchange Format) sur Web pour faciliter la transition.

Sinon, si vous devez communiquer avec un autre dialecte de Smalltalk et échanger des données, il y a SIXX (Smalltalk Instance eXchange in XML).

Si vous développez sur Windows et pour Windows, je vous recommande très fortement de jeter un coup d’oeil à Dolphin!


RSqueak/VM

12 avril 2015

On annonce des progrès significatifs et très intéressants du côté de RSqueak/VM, cette machine virtuelle pour Squeak écrite en Python!  Les derniers résultats ici!


Cog 15.13.3306

3 avril 2015

Une nouvelle version de Cog (la machine virtuelle de Squeak et Pharo) est maintenant dicponible ici.


Smalltalk et C

1 avril 2015

Un excellent article sur les nombreux problèmes avec lesquels le code C de la machine virtuelle de Squeak et Pharo a à composer.


Opérations dangereuses

4 mars 2015

Un excellent article sur les unsafe operations.


Mariano Martinez Peck

6 décembre 2014

Bonne nouvelle!  Après 2 ans d’absence, Mariano Peck a recommencé à bloguer!  Comme à son habitude, le thème central tournera autour de Smalltalk.  Il a l’intention d’aborder des sujets aussi variés que Pharo, Gemstone, la persistence, la machine virtuelle et Seaside sur son blogue..


Smalltalk et performance : tinyBenchmarks

8 décembre 2012

Il existe plusieurs programmes d’évaluation (benchmarks) servant à établir des comparaisons.  Le plus simple dont nous disposions en Smalltalk est tinyBenchmark (dans Squeak, Pharo et quelques autres saveurs de Smalltalk).

Ce petit test simpliste mesure le nombre de bytecodes traités par seconde ainsi que le nombre d’envois de messages (message sends) par seconde.  Bref, ce test vaut ce qu’il vaut : il évalue  principalement la rapidité de la machine virtuelle sans se soucier de l’efficacité et de la rapidité du code Smalltalk ou des primitives.

Un test plus représentatif et complet, comme le Computer Language Benchmark Game, est nettement plus révélateur de l’ensemble des capacité d’un environnement Smalltalk.  Dans le passé, il en existait des versions pour Squeak et GNU Smalltalk mais il ne semble maintenant rester que celle de VisualWorks.  Le code Smalltalk pour le CLBG est toutefois disponible ici

Malgré tout, par simple curiosité, j’ai utilisé tinyBenchmark pour comparer différentes versions de Smalltalk.  Les versions évaluées étaient:

  • VisualWorks Non Commercial 7.8 (VW)
  • ObjectStudio 7.1 (OS)
  • VisualSmalltalk 3.0.1 (VS)
  • Squeak 4.2 All-in-One (SQ)
  • PharoCore 1.2 RC3 (PH)
  • VA Smalltalk 7.5 (VAST)
  • Dolphin Professional 6.02 (DP)
  • Amber 0.9.1 (AM)

Sans m’en douter, quelques surprises m’attendaient!

1) Bytecodes par seconde

VisualWorks Non Commercial 7.8 : 607691685
ObjectStudio 7.1 : 35717175
Visual Smalltalk 3.0.1 : 281603053
Squeak 4.2 All-in-One : 85373820
PharoCore 1.2 RC3 : 97390689
VA Smalltalk 7.5 : 358381181
Dolphin Professional 6.02 : 110771676
Amber 0.9.1 : 2195520

Bytecodes par seconde

Bytecodes par seconde

On remarque immédiatement la nette domination de VisualWorks sur tous ses concurrents et la seconde place de VisualAge.  La performance de VisualSmalltalk est surprenant tandis que je m’attendais à ce que Dolphin fasse mieux!  Évidemment, dans le cas d’Amber, il s’agit d’un petit nouveau mais laissons-lui le temps de mûrir un peu!

2) Envois de messages par seconde

VisualWorks Non Commercial 7.8 : 52403197
ObjectStudio 7.1 : 708240
VisualSmalltalk 3.0.1 : 59120053
Squeak 4.2 All-in-One : 3128033
Pharo Core 1.2 RC3 : 3828940
VA Smalltalk 7.5 : 19515614
Dolphin Professional 6.02 : 5097612
Amber 0.9.1 : 133367

Envois de messages par seconde

Envois de messages par seconde

Grosse surprise ici!  VisualSmalltalk domine!  Évidemment, VisualWorks suit de près tandis que Dolphin me déçoit encore!  J’ai toujours eu l’impression que Dolphin était fichtrement rapide mais ce n’était, hélas, qu’une impression!

Évidemment, la liste des versions de Smalltalk est loin d’être complète. J’essaierai, un  de ces jours, de refaire ce petit test (ou mieux, le Computer Language Benchmark) pour tous les environnements mentionnés ci-haut ainsi que les versions de Smalltalk suivantes:

Bref, toute cette histoire ne fait que commencer!  J’essaierai d’aboutir avec une version de tinyBenchmark pour toutes les versions de Smalltalk mentionnées dans cet article et qui roulent sur Windows… Éventuellement, je ferai la même chose pour le Shootout Benchmark…

À suivre!