Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
FoxPro 2.6 for DOS app on i3-6100 Skylake CPU
Message
De
27/01/2016 15:23:04
 
 
À
27/01/2016 05:48:26
Information générale
Forum:
Visual FoxPro
Catégorie:
FoxPro 2.x
Versions des environnements
Visual FoxPro:
FoxPro Dos
OS:
Windows 7
Network:
Windows Server 2012 R2
Application:
Desktop
Divers
Thread ID:
01630254
Message ID:
01630301
Vues:
143
>>>>>>Is anyone successfully running a FoxPro for DOS app on a machine with the new i3-6100 Skylake CPU?
>>>>>>
>>>>>>Our old FoxPro 2.6 for DOS app has run happily on 32-bit Windows 7 workstation machines for a long time, but fails to run on the newest replacement workstations that have i3-6100 Skylake processor. Symptoms are that the ntvdm.exe process starts up as expected but then hangs with nothing visible happening in the command window it's running from. The task manager shows ntvdm.exe running at 25% CPU - 100% CPU on the one core that ntvdm.exe is using and nominal CPU % on the other three cores. Memory usage does not fluctuate.
>>>>>>
>>>>>>We realize this problem could be due to something else but at the moment we're focusing on the hardware because the network guys can't identify any other differences between these new workstations and the slightly older ones on which the app runs as expected in the same environment.
>>>>>
>>>>>You already running the 2.6 patch for fast processors?
>>>>
>>>>Thanks for the suggestion, but I believe that patch is for FoxPro for Windows, not DOS. Anyway, processor speed probably isn't the issue here - the app runs fine on other recent PCs with fast processors (>3.0 GHz).
>>>
>>>The problem is not CPU speed but multiple CPU cores. If you limit ntvdm.exe to run on 1 core only, it will go away.
>>
>>Good point. Old but relevant discussion at http://www.markwilson.co.uk/blog/2005/01/troubleshooting-ms-dos-application.htm
>>
>>How to set affinity in Win7: http://www.tech-recipes.com/rx/37272/set-a-programs-affinity-in-windows-7-for-better-performance/
>
>Interesting links. Going on the assumption, that I have tasks where core restriction gives better performance due to less switching, restricting the already running tasks (with the default "all cpu") from trying to run on the core[s] allocated to the high perf tasks should eek out a bit more, even if in reality they should always run on the other cores - but it might make perf measurements more consistent ;-))
>
>The manual method described in second link should work, but is there a way to do that for already running tasks via command line as well ? The WINAPI calls AFAIR work only the own process ? I guess for some processes you could fix up the start line in msconfig similar to the link example, but that would not encompass everything seen in task manager...
>
>One machine I would love to try that is a Hyper-V server: all housekeeping tasks should easily be handled on 1 core and giving each VM a dedicated core might enhance perf there ;-))

I remembered the Mark Wilson link from some time ago (after Sergey reminded me of it :)) I had the same issue, reliability of NTVDM.EXE on multiple cores.

That link discusses setting affinity on W2K/W2K3/XP. I found the second while researching how to set it on Windows 7. While the author seems to be focused on performance, for this particular scenario (NTVDM.EXE) it would be used for reliability.

Regarding processor affinity and performance, ISTR researching that some time ago (Web research, not testing) and the consensus was it makes things worse unless you have *very* specialized edge cases and you know exactly what you're doing. My guess is schedulers have only gotten better since then.
Regards. Al

"Violence is the last refuge of the incompetent." -- Isaac Asimov
"Never let your sense of morals prevent you from doing what is right." -- Isaac Asimov

Neither a despot, nor a doormat, be

Every app wants to be a database app when it grows up
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform