ImageEn for Delphi and C++ Builder ImageEn for Delphi and C++ Builder

 

ImageEn Forum
Profile    Join    Active Topics    Forum FAQ    Search this forumSearch
 All Forums
 ImageEn Library for Delphi, C++ and .Net
 ImageEn and IEvolution Support Forum
 File read performance

Note: You must be registered in order to post a reply.
To register, click here. Registration is FREE!

View 
UserName:
Password:
Format  Bold Italicized Underline  Align Left Centered Align Right  Horizontal Rule  Insert Hyperlink   Browse for an image to attach to your post Browse for a zip to attach to your post Insert Code  Insert Quote Insert List
   
Message 

 

Emoji
Smile [:)] Big Smile [:D] Cool [8D] Blush [:I]
Tongue [:P] Evil [):] Wink [;)] Black Eye [B)]
Frown [:(] Shocked [:0] Angry [:(!] Sleepy [|)]
Kisses [:X] Approve [^] Disapprove [V] Question [?]

 
Check here to subscribe to this topic.
   

T O P I C    R E V I E W
Ronald Posted - Dec 15 2011 : 13:29:12
Hello,

We have customer that complains about performance of displaying image files (15 Mb) that are read via their network. Copying via Explorer was about 2 times faster than ImageEn.

Customer is large organization with busy network (performance in our small business network was OK).

It turned out that files we tested (15Mb Dicom) was read in blocks of 4-8 Kb, while Explorer reads 64Kb blocks. My question is: how can we make ImageEn read files in larger chunks? Is this a setting somewhere?

Any suggestions are welcome.

Regards, Ronald
7   L A T E S T    R E P L I E S    (Newest First)
fab Posted - Dec 22 2011 : 01:06:19
It will be increased also for jpeg (other formats doesn't use this buffer or values are already optimized).
Murat Posted - Dec 21 2011 : 23:20:39
Hi Fabrizio,

Will you increase the read buffer size for other formats (photo, camera raw)?
Ronald Posted - Dec 21 2011 : 14:43:29
Hi Fabrizio,

May I suggest increasing read buffer for other file formats, too?

Regards, Ronald
fab Posted - Dec 21 2011 : 02:17:46
Hi Ronald,
many thanks for your tests. I will update Dicom reading buffer size to 64K.
Ronald Posted - Dec 20 2011 : 08:40:15
Hi Fabrizio,

We did some testing and noticed:

XP client, 15 Mb Dicom file:
- Reading from fileshare with ImageEn is much slower than copying with Explorer
- Reading from fileshare goes much faster in 64Kb blocks. (3,4s -> 2,0s)
- Bigger blocksize than 64 Kb did not result in better performance
- For reading from local harddisk blocksize did not matter much

Windows 7 client, same file:
- blocksize did not matter much
- Some cachin is done, 2nd read is much faster

For the tests, we modified ideicom.pas, line 3788:
ctx.Stream := TIEBufferedReadStream.Create(Stream, 8192, iegUseRelativeStreams);
We modified 2nd parameter (8192)

so we think reading in 64Kb blocks improves reading speed dconsiderably under XP. We did not notice any side effects (yet:-)

refer to http://support.microsoft.com/kb/q223140 for more info. From this link, I conclude that hardcoding 64Kb is OK, instead of adding global Const...

Regards, Ronald
fab Posted - Dec 16 2011 : 00:38:11
No, it hasn't side effects. If you find that increasing the reading buffer size does enhance performance we will set a global variable for it. Please let me know.
Ronald Posted - Dec 15 2011 : 14:32:48
After digging in the source code a bit, it seems that alle read operations use TIEBufferedReadStream with size of 8192.

I wonder if it would it be a good idea to make this size a constant, and increase to 64k , or even 1 Mb. Does this have side effects?

Anyone have experience increasing file read buffer size?

Regards, Ronald