Carbonsoft cxCpu 4 Release Notes
Release 4.0.16 / 23 August 2003

[This is a beta release and may not operate as expected]

Introduction | Beta Info | Known Issues | License |

Introduction
Welcome to the first public beta release of Carbonsoft cxCpu 4.

It's been over two years since the last release of cxCpu, but I think it's been time well spent - hopefully you will too. The Api has been replaced by a new class library that makes getting information about your processor(s) even easier and more intuitive than before. Some parts of previous releases - notably the Vcl component - didn't make the cut for release 4 but for everything that didn't make it I've included similar.

The class library in cxCpu 4 has also replaced the old non-visual component from cxCpu 3. There were several reasons for this, the most compelling being the new SMP support. With an unknown number of processors in the system this clearly wasn't going to fit nicely into the object inspector. I toyed with several Vcl implementations before deciding on the class library.

The only real difference implementing the class library for you, the developer, is that you have to add cxCpu40.pas to your uses clause. Every Vcl-based implementation I tried involved you having to write additional code or deal with property editors, not to mention incurring substantial overhead in memory and resources. I didn't like that - cxCpu is meant to be simple to use. I decided to forget the Vcl component and concentrate on making cxCpu 4 the best release yet.

Now that cxCpu is a code only solution you can use it in both Gui and Console applications using the class library instead of having to resort to the Api. The procedural interface is still there for those die-hards who prefer the functional route, the inclusion of cxCpu40Intf.pas, compatible with cxCpu2kIntf.pas should prove helpful when migrating old code.

I must confess to being a die-hard until recently - getting information from the class library is (IMO) even easier than the old vcl component. The new features that allow you to define how the results are formatted are a definite boon, especially when writing demo programs <g>

A quick example, to display the size of the level 2 unified cache;
using the cxCpu3 vcl component:
var
CacheSize: Integer;
begin
CacheSize := cxCpu20001.Cache.Level2;
if CacheSize <= 1024 then
Label1.Caption := Format('%d Kb', [CacheSize])
else
Label1.Caption := Format('%1.1n Mb', [CacheSize / 1024]);
end;

and again, using the cxCpu4 class library:
Label1.Caption := cxCpu.Processors[0].Cache.Level2.Size.FormatBytes;

Beta Information

While this release has been tested, the only real test is to throw it at as many different processors as possible. Your help in testing is very much appreciated and I'm interested in hearing all feedback, good or bad. There are no riches for participating I'm afraid, save a credit in the final product and a better detection toolkit.

This release has been tested with Delphi versions 6, and 7 and Kylix 2 & 3. It may work on Kylix 1 but it defintely won't work on Delphi 3 or earlier.

It doesn't work at all on C++ Builder since the Interface implementation isn't the same as Delphi (wasn't expecting that) - if some enterprising C++ developer wants to throw some pointers <g> my way on implementing C++ Builder support I'd appreciate it.

This release doesn't support the new Intel "Prescott" processors with their new Cpuid instructions and yet another cache detection scheme. I have all the relevent documentation but since AFAIK they're not actually in the wild yet I've decided to leave support for them until a later release.

Please send any feedback regarding this release to beta@carbonsoft.com quoting "cxCpu4 Beta" in the subject line.

Known Issues

I've intermittently seen strange speed results on my PIII laptop, but other Intel processors I've tried seem fine. I've been unable to pin down the cause as yet.

The Pentium III / Pentium III Xeon overlap still exists, cxCpu 4 assumes that 512Kb of L2 cache or less indicates a Pentium III while more indicates a Pentium III Xeon.

License Information
Carbonsoft cxCpu is Copyright © 1995-2003 Kev French, Carbonsoft. All rights reserved.
adCpuUsage is Copyright © 2000 Alexey A. Dynnikov. (http://www.aldyn-software.com/)
You (individual or organisation) are free to use this library and any example source code provided by Carbonsoft in compiled form for any purpose but you may NOT create derivative products including (but not limited to) DLL, COM, NET, or ActiveX implementations for any platform for financial gain without the prior written consent of Kev French, Carbonsoft.
THE SOURCE CODE CONTAINED HEREIN MAY NOT BE REDISTRIBUTED, IN WHOLE OR IN PART, FOR PROFIT OR GAIN WITHOUT THE EXPRESS WRITTEN PERMISSION OF KEV FRENCH, CARBONSOFT.