It does! It seems that you did not work in VW2.5 and 3.0 and when parcels arrived loading was realllllly a big difference I do not see why this would not the same with Fuel.
Stef >>>>> The difference is that in Fuel there is no managment for "shared objects". >> Fuel is not for swapping (there are no stubs/proxies and becomes), and the >> idea is that you write on a file, ALL (not only those objects that are ONLY >> accessible by the roots, like in ImageSegment) the objects reachable from >> user defined roots. >> >> Fuel is similar to ReferenceStream and subclasses, a XML serializer, or any >> serializers, etc...but MOSTLY, to Parcels. It is very similar to VisualWorks >> parcel. >> >> Another important thing is that it is binary. The idea is that maybe in a >> future we have a Monticello that doesn't need a mcz (code) + Compiler, but >> instead, just load binary code (fuel files). This would be muuuch faster >> that current Monticello, and even more, for minimal images, we wouldn't need >> a Compiler. >> Finally, Fuel is designed (like Parcels) to be very fast at loading time :) > > Well, I doubt if speed is really important, since you're loading everything > at most once. And the current tools are really fast IMHO. The following > numbers are from Squeak: > [ Compiler recompileAll ] timeToRun. 29083. > CompiledMethod allInstances size. 60701. > [ CompiledMethod allInstancesDo: [ :each | each getSource ] ] timeToRun. 1133. > So the compiler is compiling 2087 methods per second on average. You can load > 53575 methods per second from a file on average. If it's zipped, than it may > be a bit slower, say a factor of 2-3x slowdown. So you can still load and > compile more than 1800 methods per second. I guess thats fast enough. > > Even if Fuel can be 10x faster, it doesn't really make a difference IMHO. > > > Levente > >> >> Cheers >> >> Mariano >> >> >> >> >>> It looks exciting! >>> >>> Alexandre >>> >>> >>>> >>>>> >>>>> Alexandre >>>>> >>>>> >>>>> On 8 Dec 2010, at 13:50, Martin Dias wrote: >>>>> >>>>>> Hi all >>>>>> >>>>>> Last months I and Tristan have been working on Fuel project, an object >>>>>> binary serialization tool. The idea is that objects are much more >>>>>> times loaded than stored, therefore it is worth to spend time while >>>>>> storing in order to have faster loading and user experience. We >>>>>> present an implementation of a pickle format that is based on >>>>>> clustering similar objects. >>>>>> >>>>>> There is a summary of the project below, but more complete information >>>>>> is available here: http://rmod.lille.inria.fr/web/pier/software/Fuel >>>>>> >>>>>> The implementation still needs a lot of work to be really useful, >>>>>> optimizations should be done, but we'll be glad to get feedback of the >>>>>> community. >>>>>> >>>>>> >>>>>> = Pickle format = >>>>>> >>>>>> The pickle format and the serialization algorithm main idea, is >>>>>> explained in this slides: >>>>>> >>>>>> http://www.slideshare.net/tinchodias/fuel-serialization-in-an-example >>>>>> >>>>>> >>>>>> = Current features = >>>>>> >>>>>> - Class shape changing (when a variable has been added, or removed, or >>>>>> its index changed) >>>>>> - Serialize most of the basic objects. >>>>>> - Serialize (almost) any CompiledMethod >>>>>> - Detection of global or class variables >>>>>> - Support for cyclic object graphs >>>>>> - Tests >>>>>> >>>>>> >>>>>> = Next steps = >>>>>> >>>>>> - Improve version checking. >>>>>> - Optimize performance. >>>>>> - Serialize more kinds of objects: >>>>>> -- Class with its complete description. >>>>>> -- Method contexts >>>>>> -- Active block closures >>>>>> -- Continuation >>>>>> - Some improvements for the user: >>>>>> -- pre and post actions to be executed. >>>>>> -- easily say 'this object is singleton'. >>>>>> - Partial loading of a stored graph. >>>>>> - Fast statistics/brief info extraction of a stored graph. >>>>>> - ConfigurationOfFuel. >>>>>> - Be able to deploy materialization behavior only (independent from >>>>>> the serialization behavior) >>>>>> >>>>>> >>>>>> = Download = >>>>>> >>>>>> In a Pharo 1.1 or 1.1.1 evaluate: >>>>>> >>>>>> Gofer new >>>>>> squeaksource: 'Fuel'; >>>>>> version: 'Fuel-MartinDias.74'; >>>>>> version: 'FuelBenchmarks-MartinDias.4'; >>>>>> load. >>>>>> >>>>>> >>>>>> = Benchmarks = >>>>>> >>>>>> You can run benchmarks executing this line (results in Transcript): >>>>>> >>>>>> FLBenchmarks newBasic run. >>>>>> >>>>>> >>>>>> Thank you! >>>>>> Martin Dias >>>>>> >>>>> >>>>> -- >>>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: >>>>> Alexandre Bergel http://www.bergel.eu >>>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>> >>>> >>> >>> -- >>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: >>> Alexandre Bergel http://www.bergel.eu >>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. >>> >>> >>> >>> >>> >>> >>> >> >
