• [^] # Re: Mouais

    Posté par . En réponse au journal benchmark pour le fun. Évalué à 8. Dernière modification le 20 mars 2014 à 09:20.

    mais pour le "procédural", j'ai toujours entendu dire que c'était plus rapide et moins gourmand que du objet, mais moins confortable pour le développeur. C'est vrai ou pas? SI ce programme était écrit en objet, ça irait plus vite? moins vite?

    On s'en balance un peu. Bencher comme ca sans raison le DL d'une matrice 500x500 ça ne sert absolument à rien. Si tu fais ton petit truc dans ton coin pour 5 utilisateurs ca sera de toute façon suffisamment rapide pour ne pas avoir a t'en soucier (c'est bien d'avoir une idée des ordres de grandeur). Si tu fais un truc qui va prendre de la charge dans la face ou que ton besoin c'est pas 500x500 mais NxN alors tu prends en compte ces paramètres dans ta conception et dans tes tests:

    • Si tu charges toujours toute la map, pourquoi la stocker par ligne dans la BDD ?
    • Si tu n'es intéressé que par une sous partie de la map alors tu vas faire en sorte de pouvoir chopper que cette partie de la matrice
    • Si tu as 3 utilisateurs par semaine alors de toute façon tu vas passer tout ton temps en I/O vu que tu taperas pas dans ton cache VFS
    • Si tu as plein d'utilisateurs alors le bench mono utilisateur n'a aucun sens
    • Etc.

    Mais surtout si ton besoin c'est vraiment de stocker du 500x500 pour tes gamins pourquoi tu benchs ? T'as 250Ko à lire ! ~5 ms à froid pour le seek quoi que tu fasses et quelques dizaines/centaines de μs à chaud. Y'a rien à gagner ou à perdre avant d'avoir très très sérieusement scalé.

    Bref en règle générale:

    • Tu designs quelque chose de simple et élégant jusqu'à ça soit prouvé que c'est un problème
    • Les trucs simple et élégant qui fonctionnent bien se reposent souvent sur les concepts de l'OS. Tirer bêtement partie du cache VFS et d'un format de fichier adéquat te permettra déjà d'aller très loin.