PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Erreur 1020 avec HT et Xeon Multi CPU -> Code de désativation
Erreur 1020 avec HT et Xeon Multi CPU -> Code de désativation
Débuté par andre_laguerre, 08 fév. 2006 09:58 - 6 réponses
Posté le 08 février 2006 - 09:58
Le code suivant que j'ai trouvé sur ce forum:

// Code pour forcer l'appli à s'exécuter sur un seul processeur
// (sur une machine multiprocesseur) ou
// comme si l'hyperthread était désactivé (sur une machine hyperthreadée)

hInstance est un entier = API("KERNEL32","GetCurrentProcess")
dwProcessAffinityMask est un entier = 1
API("KERNEL32","SetProcessAffinityMask",hInstance,dwProcessAffinityMask)

Où faut-il le placer ?

à l'initialisation de ma première fenêtre...

Ou sur toutes les fenêtres ?...

et/ou dans chaque thread ?

Qui l'a déjà utilisé? Quels résultats ?

:-p André.
Posté le 08 février 2006 - 10:19
André L. avait soumis l'idée :
Le code suivant que j'ai trouvé sur ce forum:

// Code pour forcer l'appli à s'exécuter sur un seul processeur
// (sur une machine multiprocesseur) ou
// comme si l'hyperthread était désactivé (sur une machine hyperthreadée)

hInstance est un entier = API("KERNEL32","GetCurrentProcess")
dwProcessAffinityMask est un entier = 1
API("KERNEL32","SetProcessAffinityMask",hInstance,dwProcessAffinityMask)

Où faut-il le placer ?

à l'initialisation de ma première fenêtre...

Ou sur toutes les fenêtres ?...

et/ou dans chaque thread ?

Qui l'a déjà utilisé? Quels résultats ?

:-p André.


A placer dans le code d'initialisation du projet avant tout autre instruction (sauf déclaration de globales ou de classes)
Je le place systématiquement dans mes projet et pas de problèmes.
Si tu veux forcer sur un processor autre que le premier tu peux en modifiant
dwProcessAffinityMask est un entier = XX <---- Numéro du processor à utiliser.

--
Pascal
N0.pascal.SPAM@efpe.biz
Ne garder que le prénom pour me joindre
Posté le 08 février 2006 - 11:36
C'est étrange, je fait tourner des applications Windev ( 7.5,8,9) sur des biXeon dont l'HyperThreading est activé, sans aucun problème. Ces serveurs tournent sous Windows 2003 Serveur.
J'ai également des applications qui tournent sur un Xeon HT sous Windows 2000 Serveur, sans soucis également.

Frédéric.
Posté le 08 février 2006 - 11:58
Les applications en question utilisent-elles les timers, les threads les hoptimise... ???
Si j'ai bien compris : quand l'appli s'exécute dans un thead pas de problème sinon quand on utilise au moins une des commande ci-dessus plantage assuré !!! Je l'ai vérifié des postes IBM en HT.

Par contre : je n'ai pas encore fais le pas pour migre les applis en Windev 10 et retirer le code en init du projet. Normalement cela devrait fonctionner car W10 est censé gérer cela. Si certains d'entre vous ont fait le pas -> migration en W10 + retirer le code sur des machines HT et que cela fonctionne ce serait sympa de le faire savoir, je gagnerai du temps ... et il me manque beaucoup en ce moment !

Meci.

Michel.
Posté le 08 février 2006 - 13:59
lion a émis l'idée suivante :

Les applications en question utilisent-elles les timers, les threads les hoptimise... ???
Si j'ai bien compris : quand l'appli s'exécute dans un thead pas de problème sinon quand on utilise au moins une des commande
ci-dessus plantage assuré !!! Je l'ai vérifié des postes IBM en HT.

Par contre : je n'ai pas encore fais le pas pour migre les applis en Windev 10 et retirer le code en init du projet.
Normalement cela devrait fonctionner car W10 est censé gérer cela. Si certains d'entre vous ont fait le pas -> migration en W10
+ retirer le code sur des machines HT et que cela fonctionne ce serait sympa de le faire savoir, je gagnerai du temps ... et il
me manque beaucoup en ce moment !

Meci.

Michel.


J'ai fait le test et le résultat est exactement le même qu'en 9. Suite à un message au STG, la réponse a été la même que lors de
ma demamnde en 9, à savoir que Microsoft déconseillait l'utilisation de l'HT.

--
Pascal
N0.pascal.SPAM@efpe.biz
Ne garder que le prénom pour me joindre
Posté le 08 février 2006 - 14:13
Mes applications ne sont pas multi-threadées, par contre j'ai bien un timer.
Je n'utilise plus hOptimise car sur des fichiers HF temporaires ( donc locaux ), celà ne m'apportait pas grand chose.

Frédéric.
Posté le 08 février 2006 - 15:55
Sans thread mais avec des timers, l'erreur 1020 (access violation GPF sur oleaut32.dll) apparaît systématiquement sur un poste win2003 server quand on affecte un fichier xml à un champ html.

SI fFichierExiste(ResRepTemp+"fic_temp.xml") ALORS
HTML1=ResRepTemp+"fic_temp.xml"
FIN

Le fichier xml existe bien, et s'ouvre correctement sous IE6.

Le même programme s'exécute sans erreurs sur un poste avec winXP sp2.

Sous w2003 server, le version de IE = 6.0.3790.1830 SP1 alors que sous XP sp2 c'est
6.0.2900.2180-xpsp2... sp2.

Je n'ai trouvé aucune mise à jour de IE pour W2003 supérieure à celle que j'ai.

Si quelqu'un pouvait essayer et me dire s'il rencontre la même erreurm cela ferait peut-être avancer le schmilblick.

Ce problème a été communiqué au ST.

Hubert