25Fermer27
Kevin KoflerLe 05/02/2008 à 15:05
Sasume (./25) :
Ta réponse contient une contradiction : tu dis qu'on a trop de RAM, et puis tu dis qu'il faut la préserver.

Faux. L'archive n'est pas de la RAM. J'ai dit "tu gaspilles de l'archive".
En tout cas, faire tourner 20 ko de code dans 5 ko de RAM, ça permet de la préserver.

Non, ça ne préserve rien du tout. Il faut de toute façon la garder libre pour d'autres programmes. (Presque tous les programmes ont besoin de plus de 20 KO de RAM.) La RAM n'est pas faite pour le stockage (aussi parce qu'elle est perdue lors d'un reset). L'archive l'est, et en augmentant la quantité d'archive utilisée par le programme, ce découpage réduit la quantité de mémoire utilisable pour le stockage. La grosse différence est que le stockage (archive) est consommé par tous les programmes en même temps, la RAM par un seul programme à la fois (parce que AMS est monotâche)!
Et faire tourner 250 ko de code dans ce qu'on a de RAM sur TI, c'est quand même chiant à faire (proprement) en _nostub. Surtout si tu as plusieurs programmes qui font ça.

Il faut déjà l'avoir, le programme de 250 KO, pour se poser cette question. Ça ne sert à rien d'utiliser des techniques faites pour d'énormes programmes (et oui, le chargement dynamique de libs kernel a été conçu d'origine pour un énorme programme, le fameux Chrono Fantasy) sur des programmes de taille moyenne voire minime.
Les données manipulées par le programme (dans un jeu les personnages, objets et cartes par exemple) ?

Tu as besoin de 192 KO pour ça?!
Ça peut servir, mais l'objectif était surtout de montrer que le kernel rajoutant une surcouche au _nostub permet de faire des choses plus complexes plus simplement (pour le programmeur).

Et ma position est que ces "choses plus complexes" ne servent strictement à rien en pratique (pas sur un exemple tordu comme le programme de 250 KO, qui de plus doit être suffisamment découpable pour pouvoir être coupé en morceaux de 64 KO maximum), elles ne font que vous compliquer la vie si vous choisissez de les utiliser.