[Squeak-ev] Benchmarks im Context-Step-Simulator aufrufen

Bert Freudenberg bert at freudenbergs.de
Mon Okt 8 20:16:32 UTC 2007


Ähm, wieso gerade die vm-dev-Liste? Das ist *nicht* der Interpreter- 
Simulator aus dem VMMaker-Paket, hat also mit der VM nicht direkt zu  
tun. Oder vermutest du einen VM-Bug?

- Bert -

On Oct 8, 2007, at 22:03 , André Wendt wrote:

> Hallo Torge,
>
> danke für die umfassenden Erkenntnisse, ich werde das mal versuchen
> nachzuvollziehen.
>
> Mittlerweile habe ich die allgemeine Frage nach Benchmarking im
> Simulator an die vm-dev-Liste weitergeleitet.
>
> Viele Grüße,
> André
>
> Torge Husfeldt schrieb:
>> Hallo André,
>>
>> Ich habe mal versucht, das Problem nachzuvollziehen und mir sind  
>> dabei
>> mehrere Dinge aufgefallen.
>> 1. Im aktuellen Squeak-dev-Image (3.9) konnte ich die MakroBenchmarks
>> nicht finden, ich habe sie von SqueakMap nachgeladen (für 3.7)
>> - a) diese Version musste ich leicht anpassen, damit sie überhaupt  
>> läuft
>> und dabei musste ich den benchmark3 auskommentieren, weil dieser  
>> intern
>> auch wieder simuliert, was schiefgeht
>> 2. Alle Fehler während der Simulation werden vom mit der selben
>> aussagearmen Fehlermeldung an den User zurückgegeben.
>> a) die eigentliche Fehlermeldung findet sich dann im 7. Eintrag des
>> Stacks, wenn man in die lokale Variable arguments schaut.
>> In meinem Fall bin ich dort auf ein Message not understood: quo:
>> gestossen. Dann habe ich mich durch die Sender-chain nach oben  
>> gehangelt
>> (wie es sonst auch der Debugger machen würde) und bin beim Aufruf von
>> Smalltalk timeStamp: gelandet.
>> Irgendwo in dieser Kette wird das aktuelle Datum in Nanosekunden
>> ausgerechnet und dann als argument an Duration>>nanoSeconds:  
>> übergeben.
>> Wie man sich leicht vorstellen kann, handelt es sich dabei um einen
>> Large Integer, der irgendwie bei dieser Übergabe in ein Array
>> umgewandelt wird (frag nicht wie, soweit bin ich noch nicht, aber es
>> orientiert sich am printString (der LargeInt ist in meinem Beispiel
>> 212058345600 und das Array ist #(212 58345600) )), das dann natürlich
>> kein quo: versteht.
>>
>> Scheint mir im Moment noch ziemlich verworren. Man sollte einen  
>> Debugger
>> extra für den Simulator schreiben (oder den jetzigen anpassen).
>>
>> Gruss, Torge
>>
>> André Wendt schrieb:
>>> Hallo *,
>>>
>>> beim Versuch, den Code
>>>
>>> ContextPart tallyInstructions: [MacroBenchmarks run]
>>>
>>> auszuführen, erhalte ich den Fehler "context not in process". Einen
>>> Report zu ähnlichen Aufrufen habe ich bereits unter
>>> <http://bugs.squeak.org/view.php?id=5716> gefunden. Meine Fragen  
>>> dazu:
>>>
>>> Woran liegt das?
>>>
>>> Kennt jemand komplexere Benchmarks als Integer>>#benchmark und
>>> Integer>>#benchFib, die im Simulator funktionieren?
>>>
>>> Gibt es andere Möglichkeiten als den Simulator, um die ausgeführten
>>> Instruktionen zu analysieren?
>>>
>>> Grüße,
>>> André
>>>
>>
>>
>