Why does Firemonkey application use no more than 20% of CPU?

delphi, delphi-xe2, firemonkey

Solution

As far as I know, the only way to utilise the power of multiple cpu cores with Delphi is to use threads.

If you do choose to use threads in your application, there are a couple libraries that may ease development. How Do I Choose Between the Various Ways to do Threading in Delphi?

Problem

I have a large binary file (700 Mb approximately) which I load to TMemoryStream. After that I perform the reading with TMemoryStream.Read() and make some simple calculations but the application never takes more than 20% of CPU. My PC has i7 processor. Is there any chance to increase the CPU using and speed up the reading process without using the threads?

Original source

Related problems