I forgot to mention that Pharo Zinc with all those primitives produces an HTTP 
data transfer rate (CSV data) twice as fast as VW’s HTTP client.  I tested it 
many times.  Pharo HTTP (Zinc) is consistently 2x faster than VW HTTP.  This is 
probably more about the judicious use of primitives than the execution engine, 
JIT, or MM.  

 

This is another good reason to do a port.

 

Also, Pharo’s WebSocket implementation works very well, and is a standalone 
Smalltalk client.  No such thing exists in VW.  It’s all JS, which has been a 
source of frustration, and is another good reason to port.

 

 

Shaping

 

 

 

 

 

Hi Eliot.

 

 

Generally, comparing VisualWorks to either Squeak or Pharo or both, what are 
the most pressing speed problems?

 

1.  Double-click text selection in both Squeak and Pharo shows a 75-100 ms 
latency (eye-balled, estimated) between end of double click (button up on 
second click) and time of highlighting of selected text.  It could be as low as 
60 ms, but I doubt it, and that’s still too long.  I can’t track the latency in 
VW 8.3.2.  It’s too short, probably 30 ms or less, and is under my noise floor. 
 Notepad latencies are even lower.  The difference between VW and Notepad is 
not enough to complain about.  Neither is noticeable in passing.  The 
difference between VW and Pharo/Squeak latencies is a little 
painful/distracting.  It’s very much in your face, and you are keenly aware 
that you are waiting for something to happen before you can resume your 
thoughts about the code.

 

2.  Stepping in the Pharo debugger is slow (Squeak is fine).  The latencies 
between the step-click event and selection of the next evaluable is a solid 100 
ms (again estimated).  Feels more like 150-175 ms much of the time.  This is 
actually hard to work with.  

 

 Where is VisualWorks significantly faster than either Squeak or Pharo?  

 

VW 8.3.2 faster:

 

1. Text selection.  

 

2. Repeat-key rate in VW is smoother (not perfect; I see a few pauses).  Pharos 
repeat-key rate is the same or a little slower, there are more pauses, and 
distribution of those pause-times is slightly wider for Pharo 9, as if event 
flow isn’t as smooth as it could be (because text/cursor rendering is a not 
efficient?).  This is a minor issue, not a practical problem.  I did the test 
in a workspace in both cases.

 

 

Pharo 9 same or faster:

 

Everything else in the GUI, like window openings/closings, menu 
openings/closings work at nearly the same speed, or Pharo 9 is faster.

 

Opening a system browser in VW 8.3.2 and Pharo 9 takes about the same time.  If 
you scrutinize, you can see that Pharo system browser open times are often 
about 2/3 to 4/5 of the VW times.  This action is never faster in VW.  

 

Popup menus in Pharo 9 are noticeably faster than those in VW 8.3.2.   
Instant--delightful.

 

 

Specifically which VisualWorks VM or lower level facilities are much faster 
than the Cog VM?  Do you have benchmarks?

 

No, I don’t, but I find subject interesting, and would like to pursue it.  I’m 
trying to get some pressing work done in VW (as I contemplate jumping ship to 
Pharo/Squeak).  It’s not a good time for excursions, but here I am playing with 
Squeak/Pharo, anyway.  I want to dig deeper at some future date.

 

Do you have a specific procedure you like to use when benchmarking the VW VM?  

 

 

Shaping

 

Reply via email to