Yoshiki Ohshima wrote:
Hello,
I published a few changes in last a couple of weeks; I just looked at some inefficiency and avoid them.
I compared the project loading time in Etoys 2.3 (before Luke's method dictionary patch) and Etoys 3.0 #1957. I loaded all projects in the ExampleEtoys like this:
| dir entries proj | dir _ FileDirectory on: '/usr/share/etoys/ExampleEtoys'. entries _ FileList2 projectOnlySelectionMethod: dir entries. entries _ entries collect: [:each | Project parseProjectFileName: each first]. entries do: [:each | Transcript show: '\classic: ' withCRs , each first, ' ', ([ProjectLoading loadFromDir: '/usr/share/etoys/ExampleEtoys' projectName: each first] timeToRun) printString. proj _ (Project named: each first). proj ifNotNil: [proj okToChangeSilently]. ].
got result (numbers are in milliseconds and are the average of three runs):
BallDropAnalysis1 13850.3 9971 1.38906 BetterMovieUI 9662.67 6145 1.57244 BouncingBallAnimation 4825.33 3151.67 1.53104 CarAndPen 5676.33 3504.67 1.61965 ComputerLogicGame 14902.7 7080.33 2.1048 DemonCastle1 24442.7 11497.7 2.12588 EtoysChallenge 19955.7 10435.7 1.91226 FishAndPlankton 12526 9573.33 1.30843 FollowRoad 5532.33 3869.33 1.42979 JustPaintedCar 3777 2237 1.68842 LunarLanderGame 7730 5286.67 1.46217 MakeAMovie 8909.67 5718 1.55818 MiddleOfRoad 6056 3554 1.704 ParticlesDyeInWater 11483.3 5672.33 2.02445 ParticlesEpidemic 9368.67 5116.33 1.83113 ParticlesGasModel 10688 4668.67 2.2893 RandomRacing 7013.33 4263.33 1.64504 SalmonSniff 5943 3912.33 1.51904 SimpleSprings 5563 4566.67 1.21818 SpeedAcceleration 6150.67 4421.33 1.39113 StartOfDTPDocument 4577.67 3090.67 1.48113 SteeringTheCar 6285.67 4388.67 1.43225 TurtleGeometry 6117.67 3903.33 1.56729 Welcome 22904 11830.3 1.93604
I haven't done anything about the double compression problem, putting media file aside, nor looking at the saving side. But now project loading is 20%-100% faster than before, and bigger projects seem to benefit more.
Great progress. Do the big project contain lots of forms ? Sound is very efficiently compressed instances with the ogg plugin and maybe something similar would be possible for forms.
Karl
I have been experimenting another new format in S-expression, but found that for bigger projects, the new format is much slower. Unless there is a way to optimize it, or some other reason, probably we stick with the old format for now...
I'll try to modify the code so that .pr file may not have to be compressed and see if how much we gain.
-- Yoshiki _______________________________________________ Etoys mailing list Etoys@lists.laptop.org http://lists.laptop.org/listinfo/etoys