[Vm-dev] BMPReadWriterPlugin , do we really need it?

stephane ducasse stephane.ducasse at gmail.com
Wed Dec 22 08:18:53 UTC 2010


So igor may be this is just nostalgia. :)
In any case your email was fun to read and I learned a lot of crunchy details.

Stef
PS: when I hear bashing mac I would not call you an mac fan :)


On Dec 22, 2010, at 8:40 AM, Igor Stasenko wrote:

> 
> On 22 December 2010 05:27, Andreas Raab <andreas.raab at gmx.de> wrote:
>> 
>> The only issue with BMPReadWriterPlugin was that for some reason the
>> primitives weren't used. Probably an oversight on my behalf when I did the
>> last Teleplace/Squeak sync. Fixed now.
>> 
>> Benchmarks: 1600x1200 24bpp image
>> 
> 
> 
>> [Form fromFileNamed: 'benchmark.bmp'] timeToRun.
>> 
>> Interpreter read:  1684 msecs
>> Cog read:          1158 msecs
>> Primitive read:     100 msecs
>> 
>> 
>> [BMPReadWriter putForm: f onFileNamed: 'benchmark.bmp'] timeToRun.
>> 
>> Interpreter write:  693 msecs
>> Cog write:          434 msecs
>> Primitive write:     32 msecs
>> 
> 
> and since it uncompressed (because .bmp can't even compress the data)
> it takes 1600*1200*3 = 5760000 bytes on disk!
> Now try convert it to either PNG or JPEG and see the difference.
> One of the reasons why this format are so slow, because reading 10x
> times more data from hard disk
> takes 10x  more time than reading 1x data and unpacking it.
> 
>> So much for "just a bit" in speed. It's even more than I remembered[*].
>> 
>> [*] In particular considering that [Form extent: 1600 at 1200 depth: 32]
>> timeToRun => 80 msecs. In other words the "real" performance difference is
>> rather more along the lines of 50x in the actual code.
>> 
>> Cheers,
>>  - Andreas
>> 
>> On 12/21/2010 7:41 PM, Andreas Raab wrote:
>>> 
>>> On 12/21/2010 2:33 PM, Igor Stasenko wrote:
>>>> 
>>>> i just stumbled over it, and i thought that today, we don't really
>>>> need such kind of cruft.
>>> 
>>> This ain't cruft. This is a 10x performance boost (even over Cog).
>>> 
>>>> It is just a two methods, and there is nothing essential, in it.
>>> 
>>> The plugin is absolutely essential for high-performance reading of
>>> standard 24bpp BMP files.
>>> 
>>>> And i think that .bmp image format is really crappy format, which no
>>>> one using today,
>>> 
>>> Very funny. Spoken like a true Macvocate. Outside of academics PCs still
>>> play a pretty important role, and on Windows, BMP files are still the
>>> standard.
>>> 
>>>> and given that we got Cog, it could run just a bit slower, if
>>>> implemented in image w/o primitives.
>>> 
>>> Right. "Just a bit". 10x.
>>> 
>>> Cheers,
>>> - Andreas
>>> 
>> 
> 
> 
> 
> -- 
> Best regards,
> Igor Stasenko AKA sig.



More information about the Vm-dev mailing list