Hernán,

Am 23.07.2013 um 16:13 schrieb Hernán Morales Durand <hernan.mora...@gmail.com>:

> El 23/07/2013 9:01, Norbert Hartl escribió:
>> 
>> Am 23.07.2013 um 13:20 schrieb Hernán Morales Durand 
>> <hernan.mora...@gmail.com>:
>> 
>>> Have a look at InstanceEncoder
>>> 
>>> http://www.smalltalkhub.com/#!/~hernan/InstanceEncoder
>>> 
>> Thanks, how would you say it works compared to store an Fuel ByteArray?
>> 
> 
> This is not difficult to test. First save your image and download this file, 
> is the chromosome 22 of a human reference genome (about 10mb of gzip file):
> 
> | client ttr object fileName fStream |
> fileName := 'hs_alt_HuRef_chr22.fa.gz'.
> [ client := (FTPClient openOnHostNamed: 'ftp.ncbi.nlm.nih.gov')
>               loginUser: 'anonymous' password: '';
>               binary;
>               changeDirectoryTo: 'genomes/H_sapiens/CHR_22'.
> (FileStream newFileNamed: fileName)
>       binary;
>       nextPutAll: (client getFileNamed: fileName);
>       close ]
> on: NetworkError, LoginFailedException
> do: [ : ex | self error: 'Connection failed' ].
> 
> Now storing with InstanceEncoder:
> 
> fileName := 'hs_alt_HuRef_chr22.fa.gz'.
> ttr := [ Object store: fileName asFileReference contents asSelector: 
> #storedObjectInstanceEncoder ] timeToRun.
> (Duration milliSeconds: ttr) asSeconds.
> 
> And with Fuel
> 
> Smalltalk garbageCollect.
> fileName := 'hs_alt_HuRef_chr22.fa.gz'.
> ttr := [ Object class compile: 'storedObjectFuel
>       ^ ', (ByteArray streamContents: [ : stream | FLSerializer serialize: 
> fileName asFileReference contents on: stream ]) storeString ] timeToRun.
> (Duration milliSeconds: ttr) asSeconds.
> 
> Results for writing
> ===================
> InstanceEncoder avg: 8 sec.
> Fuel avg: 45 sec.
> 
> And reading scripts:
> 
> [ Object storedObjectInstanceEncoder ] timeToRun.
> [ FLMaterializer materializeFromByteArray: Object storedObjectFuel ] timeToRun
> 
> Results for reading
> ===================
> InstanceEncoder avg: 3955 msec
> Fuel avg: 70 msec
> 
> And the final cleaning of course :)
> 
> Object class removeSelector: #storedObjectFuel.
> Object class removeSelector: #storedObjectInstanceEncoder.
> 
Thanks for the evaluation. I was more thinking about _how_ it works. But I take 
"similar" as an answer for now. :)

Norbert

>> Norbert
>>> 
>>> El 23/07/2013 7:47, Norbert Hartl escribió:
>>>> I try to untangle my modules. I have a parser that creates a model and a 
>>>> tool that uses that model. For testing it is convenient to just generate 
>>>> the model and work with it. But this way I introduce dependencies which 
>>>> always pulls everything in.
>>>> 
>>>> In order to untangle I would need a way to easily serialize the runtime 
>>>> model into methods or something similar. Anything that can be transported 
>>>> via monticello is ok. I just don't want to have dependencies to present of 
>>>> external files. That would just change the problem but not solving it.
>>>> 
>>>> Any ideas?
>>>> 
>>>> Norbert
>>>> 
>>> 
>>> 
>> 
>> 
>> .
>> 
> 
> 


Reply via email to