I have a program I wrote which works fine in XP with older processors but
refuses to run (ie get the send error report to MS message) on pc's with
late model processors.
If I disable the hyperthreading my program works fine.
Program is in D7pro/ ADO/ Access2k
Are there any compiler options etc I need to set.
Any help is appreciated.
Andy
Hi Andy,
I don't know about Delphi in particular, but Interbase 6 has issues with
slow initial connection on multiple processor/hyperthreding processor
computers. It does work, just takes a little while. (There is a
regestry setting which can fix that also).
>is there anything I need to do or beware of when writing a program which
>will be used on a pc with a hyperthreading processor.
Your program must be multithread safe, which it should be anyway.
However multithreading bugs seem to surface a lot sooner when you
actually got multiple cpus running the code.
So, if you got threads, make sure they're accessing things correctly.
- Asbjørn
> I don't know about Delphi in particular, but Interbase 6 has issues
> with slow initial connection on multiple processor/hyperthreding
> processor computers. It does work, just takes a little while.
I'm close to certain this won't be the cause of the problems he's
experiencing with his Access 2000 app.
-CRaig
--
Craig Stuntz [TeamB] . Vertex Systems Corp. . Columbus, OH
Delphi/InterBase Weblog : http://blogs.teamb.com/craigstuntz
Please read and follow Borland's rules for the user of their
news server: http://info.borland.com/newsgroups/guide.html
Older versions of the JCL/JVCL had issues with hyperthreaded cpus. Could be
a component pack that is detecting cpu speed/specs/etc..
DD
"Andy" <An...@no.mail.please> wrote in message
news:41008a83$1...@newsgroups.borland.com...
>Hi All,
>is there anything I need to do or beware of when writing a program which
>will be used on a pc with a hyperthreading processor.
Yes - there are potential issues with resource starvation between the
two threads scheduled to run on a single CPU. Basically, if one of the
threads busy waits (even doing a sleep(0) or "yeild"), then it can
cause serious performance problems for other threads scheduled on the
CPU.
>I have a program I wrote which works fine in XP with older processors but
>refuses to run (ie get the send error report to MS message) on pc's with
>late model processors.
This looks more like changes made to modern CPU's to improve security
requirements. ISTR someone mentioning something in some groups about
running a program in "windows 95 compatibility mode" ?? Just a
thought.
>If I disable the hyperthreading my program works fine.
If you can find an O.S switch to get that particular program to run,
rather than completely disablibg hyperthreading that would probably be
preferable.
MH.
Will try installing jvcl 3 and see if that solves the problem.
Thanks
Andy
"Dan Downs" <ddo...@nospam.online-access.com> wrote in message
news:410124f5$1...@newsgroups.borland.com...
Andy wrote:
> Hi Dan,
> I think you may have hit the nail on the head - I do use jvcl 2.1
> I made a small sample app and as soon as I added any jvcl data-aware
> components the problem occurred.
The cause of the problem is JclSysInfo.GetCpuSpeed, which is
(needlessly) called during JclGraphUtils initialization.
The most simple fix is to replace the first instruction in
JclGraphUtils.SetupFunctions:
// GetCpuInfo(CpuInfo);
CpuInfo := CPUID;
so that GetCpuSpeed won't be called there.
Note: This bug is fixed (among many others) in the latest JCL release 1.91.
Greetings, Robert
Andy
"Robert Rossmair" <Robert....@gmx.net> wrote in message
news:4104...@newsgroups.borland.com...
Hi Robin,
You don't know the specifics of that Registry setting do you? My team
is about to migrate our IB6 app to Firebird because of the slow connect
issue. A fix would let us put off the migration indefiitely...
Thanks,
Andrew
Hi Andrew,
Before I progress, I am not an expert!
The file (A registry edit) is located on the below link with a brief
explanation
http://codecentral.borland.com/codecentral/ccweb.exe/listing?id=16665
What this does is specify which processor (Or virtual processor with
HyperThreading) for Interbase to use. It fixes this issue on NT4 or
better OS.
I hope this helps!
Robin.
> Hi Andrew,
>
> Before I progress, I am not an expert!
>
> The file (A registry edit) is located on the below link with a brief
> explanation
>
> http://codecentral.borland.com/codecentral/ccweb.exe/listing?id=16665
>
> What this does is specify which processor (Or virtual processor with
> HyperThreading) for Interbase to use. It fixes this issue on NT4 or
> better OS.
>
> I hope this helps!
>
> Robin.
Yes, it does! Thanks.
Cheers,
Andrew