Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Pages: 1
Salut le gens
je suis en train de me depuis ce matin sur un de problème de
Je remarque avec stupeur et tremblements que en PB 12.0 dès qu'on a un computed field dans la bande details , fut-il le plus simple des computed (genre un compute qui affiche toujours "123", même pas une expression comme getrow() ou autre) le scrolling vertical devient super lent et saccadé une fois l'application compilée (en pcode)
Pas de problèmes de lenteur en interprété.
Bien sûr aucun problème avec PB 6.5, ni PB 10.2.0 Build 8100
Vous avez déjà remarqué ça ? une solution à proposer ?
C'est quand même très très génant, la lenteur est vraiment perceptible et nos clients passent leur temps à scroller dans des DW's donc en l'état on ne peut pas passer en PB 12.
ça me fait d'autant plus que j'essaye en permanence de motiver mes collègues a évoluer un peu parceque bon PB 6.5 en 2013 voilà quoi... et là c'est le genre de problème qui fait que je vais encore entendre "ha tu vois hein, c'est mieux de rester sur PB6.5, ça fait 13 ans qu'on fait comme ça, pas de raison de changer"
Hors ligne
En 12.1 build 6875 je ne vois rien de significatif (test compilé en pcode aussi), peut-être corrigé depuis ?
Hors ligne
rincevent a écrit:
le scrolling vertical devient super lent et saccadé une fois l'application compilée (en pcode)
Pas de problèmes de lenteur en interprété
"Compilé", il faut comprendre "en code machine" -> l’étape super longue qui passe par la fabrication de code C et la compilation par le bon vieux Watcom C 11.0 (celui qui a servi à produire le dos extender dos4gw et beaucoup de hits des années 90) qui est présent dans une des dll de PB ?
Parce le "pcode" normalement c'est l'équivalent du bytecode java : un ensemble de codes interprétés à l'exécution par la pbvm, la machine virtuelle PB.
Il est très improbable qu'une lenteur puisse venir du compilateur Watcom, qui savait produire le code optimisé le plus rapide de sa génération, mais par contre vu que le compilo PB (dans pbcmpxx.dll, qui analyse le pbscript et peut produire du pcode/bytecode) traduit en fabriquant du code source C avant de le faire compiler par l'autre - dans pbcgcxx.dll) il est possible qu'un bug existe à ce niveau. Ça s'est déjà vu
Hors ligne
Bon j'ai testé en machine code et ça fait pareil.
vais essayer de voir si je peux trouver les EBF et tester.
Hors ligne
rincevent a écrit:
Bon j'ai testé en machine code et ça fait pareil.
vais essayer de voir si je peux trouver les EBF et tester.
Donc au départ c'est bien le pcode. Ça ne le fait que lorsque tu déploies ton appli et pas quand tu exécutes depuis l'IDE ? Un full build ne change rien ?
Hors ligne
Full Build ne change rien.
Vitesse normale en interprété
Très lent une fois le code généré, que ce soit du pcode ou du machine code.
Pour les MàJ PB il faut appliquer tous les EBF les uns après les autres ? Y a pas un patch cumulatif ou une MàJ directe depuis la 12.0 (build 5530) vers une version 12.5 ?
Hors ligne
rincevent a écrit:
Full Build ne change rien.
Vitesse normale en interprété
Très lent une fois le code généré, que ce soit du pcode ou du machine code.
Ça c'est très bizarre, vu que "run" depuis l'IDE execute du pcode de la même manière que lorsqu'on déploie.
La différence c'est que
- dans l'IDE au fur et à mesure que tu crées et modifies des objets (sr?), ou lors d'un full ou incremental build l'IDE compile et place dans les pbl les version compilées des objets et c'est ce code qui est exécuté lors du run.
- lors d'un déploiement sans code machine, le compilo PB génère les mêmes objets que dans le cas précédent sauf qu'il les place soit dans des pbd soit dans la "partie pb" d'un exécutable PE Windows (en fonction des cases qui sont cochées pour les différentes libs)
Normalement les objets compilés devraient être les mêmes dans les 2 cas (ça peut se vérifier avec pbdumper en comparant les fichiers binaires).
Tu compiles ton projet de déploiement et tu exécutes sur la même machine que ton poste de dev ? Je me demande si il n'y aurait pas un loup au niveau du runtime exécuté dans les 2 cas. Si c'est sur le même poste, ça devient encore plus bizarre, sinon le suspect est dans les dll pb sur chacun des postes, il pourrait y avoir une différence de version et là c'est souvent plantogène.
rincevent a écrit:
Pour les MàJ PB il faut appliquer tous les EBF les uns après les autres ? Y a pas un patch cumulatif ou une MàJ directe depuis la 12.0 (build 5530) vers une version 12.5 ?
Les EBF sont cumulatifs : le dernier contient tout ce que les précédents pour cette même version majeure contenaient (en principe, parfois un EBF corrige des trucs et en casse des nouveaux, ça s'est déjà vu)
Hors ligne
seki a écrit:
Tu compiles ton projet de déploiement et tu exécutes sur la même machine que ton poste de dev ?
oui
seki a écrit:
sinon le suspect est dans les dll pb sur chacun des postes, il pourrait y avoir une différence de version et là c'est souvent plantogène.
Je vais jeter un oeil aux dll présentes sur mon poste et éventuellement faire le ménage.
seki a écrit:
Les EBF sont cumulatifs : le dernier contient tout ce que les précédents pour cette même version majeure contenaient
Donc d'après toi je devrais pouvoir appliquer cet EBF "PowerBuilder Enterprise - EBF 21973: 12.5 SP02 PL03 (build 5602)" direct sur ma version PB 12.0 ?
(Je me permets d'insister parceque dans la description de cet EBF il est marqué "The minimum requirement for applying this EBF is the PB 12.5.1 Maintenance (Build 4015)or PB12.5.2 GA (Build 5006).")
Hors ligne
rincevent a écrit:
seki a écrit:
sinon le suspect est dans les dll pb sur chacun des postes, il pourrait y avoir une différence de version et là c'est souvent plantogène.
Je vais jeter un oeil aux dll présentes sur mon poste et éventuellement faire le ménage.
Tu peux très bien avoir les dll des différents PB sur le même poste. Dernièrement pour des tests j'ai installé tous les PB entre 5 et 11.5 sur un poste et ça fonctionne (pb8 a juste cassé mon path lors de l'install)
Par contre il ne faut pas mixer des dll de builds différents : le dernier nombre p.ex dans 10.5.2.xxx toutes les dll doivent avoir le même xxx.
rincevent a écrit:
seki a écrit:
Les EBF sont cumulatifs : le dernier contient tout ce que les précédents pour cette même version majeure contenaient
Donc d'après toi je devrais pouvoir appliquer cet EBF "PowerBuilder Enterprise - EBF 21973: 12.5 SP02 PL03 (build 5602)" direct sur ma version PB 12.0 ?
(Je me permets d'insister parceque dans la description de cet EBF il est marqué "The minimum requirement for applying this EBF is the PB 12.5.1 Maintenance (Build 4015)or PB12.5.2 GA (Build 5006).")
Sauf que 12 c'est une release qvec son lot d'ebf, et 12.5 en est une qutre qvec des dll différentes, je parlais de version majeure mais je me suis mal exprimé, pour PB les releases majeures sont 5, 6, 6.5, 7, 8, 9, 10 (et 10.2), 10.5, 11, 11.5, 12, 12.5 ...
Hors ligne
Pages: 1