• [^] # Re: Bonne nouvelle

    Posté par . En réponse à la dépêche Que penser du rachat de Novell ?. Évalué à 1.

    Ton soft gere des elements(peu importe quoi), et tu utilises un ID pour les differencier, qui est un int.

    Combien d'elements maximum peut-il gerer ? MAX_INT ...

    Quel est le moyen le plus rapide d'acceder a ces elements ? Une table contenant ces elements, une table de taille ... MAX_INT

    --> malloc(MAX_INT) ou MAX_INT*(ce que tu veux)

    C'est peut-etre pas optimal, mais c'est pas stupide non plus hein quand la taille au final est bien plus petite que la RAM dispo sur les machines standards.

    Ca a tout son sens quand ton soft gere 32768 (ou 65536 avec MAX_UINT) elements, le probleme etant quand tu 4 ans plus tard un nouveau systeme sort, et il a des int sur 32bits, et boum, tu te retrouves avec ta table qui fait 2 milliards d'entrees.

    Et devines quoi, aujourd'hui tout le monde a un systeme avec CPU 64bits, et des int 32bits, d'ici quelque annees tout le monde aura 128Go de RAM en standard sur son iPad/desktop/frigo et on verra regulierement des tables de 2^32 elements, tu sais, MAX_UINT, ou si ce n'est l'allocation elle-meme, une reservation d'espace d'addressage continu de cette taille a remplir au fur et a mesure des besoins(ca se fait probablement deja aujourd'hui dans des bases de donnees).

    Et dans quelque annees, un nouvel OS(ou ancien et modernise) bien joli va sortir tout 64bit et tout, avec des int de 64bit vu que tout le monde a 128Go de RAM et qu'un int 32bit c'est devenu ringard, et boum, la meme merde.

    Quand t'as des types de taille statique, ce genre de merde n'arrive pas, si tu passes ton soft sur le nouvel OS, ton code il marche, point.