Nicolas Boulay a écrit 16010 commentaires

  • [^] # Re: y'a trop peu d'infos pour t'aider.

    Posté par  (site web personnel) . En réponse au journal Performances des processeurs Intel et optimisation. Évalué à 4.

    C'est un "free running counter" par cpu. Cela veut dire que si on change de cpu, il peut y a voir un shift. Intel pour les crétins qu'il l'utilise comme horloge fixe l'a sorti du domaine de fréquence variable, pour le coller à une horloge fixe : donc cela ne correspond plus vraiment à un nombre de cycle et plus à du temps à l'échelle de l'instruction.

    Dans le cas de mesure courte, il y a peu de chance que l'os foute le bordel dans la mesure. C'est 2 instructions super légères.

    En général, je colle des résultats dans un tableau, que je print ensuite pour faire une jolie courbe dans un tableur. C'est facile de voir les valeurs "à la con", les pattern, les extrêmes. Faire une boucle pour atteindre un pas de temps mesurable pour les autres fonctions te donnes une sorte de borne supérieurs du code, car les caches sont "archi chauds". Cela te donne peu d'info sur la vitesse réelle dans ton code, ni la vitesse minimum.

    "La première sécurité est la liberté"

  • # utilisable en production ?

    Posté par  (site web personnel) . En réponse à la dépêche Sortie de Tuleap 6.0. Évalué à 1.

    Et le logiciel est dans quel état ?

    "La première sécurité est la liberté"

  • [^] # Re: Ai-je bien compris ?

    Posté par  (site web personnel) . En réponse au journal Performances des processeurs Intel et optimisation. Évalué à 5.

    C'est totalement vrai, mais il y a aussi une bonne dose de mauvaise communication de sa part.

    "La première sécurité est la liberté"

  • [^] # Re: Ai-je bien compris ?

    Posté par  (site web personnel) . En réponse au journal Performances des processeurs Intel et optimisation. Évalué à 3.

    Je ne sais pas trop comment tu gères les données "à effacer", qui est le problème des structures en softupdate. Tu as une sorte de garbage collector ?

    J'imagine qu'en écriture, tu alloues de la mémoire dans ton fichier pour y mettre ton triplet, puis l'écrit, puis tu modifies un pointeur de l'ancienne vers la nouvelle valeur ? Comment tu récupères la mémoire du triplet précédent, sur une liste de blocs libres ?

    Il doit exister un paquet de littérature sur la manière la plus efficace d'implémenter une sparse-matrix (matrice à trous).

    "La première sécurité est la liberté"

  • [^] # Re: Ai-je bien compris ?

    Posté par  (site web personnel) . En réponse au journal Performances des processeurs Intel et optimisation. Évalué à 7.

    roooh, te rappelles-tu comment tu étais à son age ? (ce que tu pensais des plus vieux sur les forums :)

    "La première sécurité est la liberté"

  • [^] # Re: Ai-je bien compris ?

    Posté par  (site web personnel) . En réponse au journal Performances des processeurs Intel et optimisation. Évalué à 5.

    J'ai du mal à suivre. Est-ce une vrai base de donné avec sauvegarde sur disque des écritures de façon protégé ? Parce que niveau perf, il y a une différence énorme entre une grosse structure de donné en mémoire, et des données sauvé sur disque. Il y a aussi une grosse différence de performance si chaque écriture doit être pris en compte immédiatement ou non.

    Ton bench de qq Ko n'a strictement aucun sens, la base tient dans le cache L1 d'un processeur ! Les perfs peuvent tomber drastiquement si la base ne tient pas en cache L2 ou L3, voir ne tient pas dans la RAM.

    "32 octets par triplet (objet, clé, valeur)"

    C'est quoi cet objet ? Tu ne parles que d'une matrice[i][j]-> k, i,j,k étant entier.

    "La première sécurité est la liberté"

  • [^] # Re: Ai-je bien compris ?

    Posté par  (site web personnel) . En réponse au journal Performances des processeurs Intel et optimisation. Évalué à 2.

    ta base de donnée, c'est 2 chiffres de 32 bits qui pointent vers un seul chiffre de 32 bits ou est-ce n chiffres de 32 bits vers un seul de 32 bits ?

    Quelle est sa taille ? Genre 100 mo ? 10 Go ? 1 To ?

    "La première sécurité est la liberté"

  • [^] # Re: Ai-je bien compris ?

    Posté par  (site web personnel) . En réponse au journal Performances des processeurs Intel et optimisation. Évalué à 4.

    En général, le "make it work" implique le bon algorithme et la bonne architecture. Le "make it fast" sous-entend une transformation du code source uniquement pour aller plus vite, il reste peu de marge, et cela rend le code source difficile à lire.

    "La première sécurité est la liberté"

  • [^] # Re: Linux perf

    Posté par  (site web personnel) . En réponse au journal Performances des processeurs Intel et optimisation. Évalué à 2.

    Il y a un peu plus de 30 personnes qui font des cpu dans le monde :)

    "La première sécurité est la liberté"

  • [^] # Re: y'a trop peu d'infos pour t'aider.

    Posté par  (site web personnel) . En réponse au journal Performances des processeurs Intel et optimisation. Évalué à 3.

    Il ne faut pas faire des boucles pour augmenter les chiffres. Sur tout les benchs que j'ai fait, j'ai observé un ramp-up des performances, entre la 1er, la deuxième et la 3ième exécution d'un même code. La meilleur façon de faire de mon point de vue est de tracer des courbes, tu imprimes le temps d’exécution de chaque itération, ainsi tu peux comparer en repérant les anomalies et les patterns (très amusant à faire sur un malloc par exemple, ou on repère facilement 3 branches de code).

    "La première sécurité est la liberté"

  • [^] # Re: C'est trop limité ;)

    Posté par  (site web personnel) . En réponse au journal Galeries de shaders GLSL et fond d'écran animé pour Android. Évalué à 2.

    Est-ce qu tu peux déclarer une variable uniforme dans une fonction du shader ?

    Quel est l’intérêt du "a" dans rgba quand on est plus dans un espace 3d ?

    "La première sécurité est la liberté"

  • # y'a trop peu d'infos pour t'aider.

    Posté par  (site web personnel) . En réponse au journal Performances des processeurs Intel et optimisation. Évalué à 10.

    Il faudrait tes fameux 314 SLOC pour te répondre. De mon coté, j'aurais fait un arbre 256-aire avec un read-modify-write sur le noeud écrit pour être sans lock.

    Concernant le mesure du temps, il vaut mieux utiliser l'instruction rdtsc qui rend un nombre de cycles d'horloge (bidouillé pour que cela ne voit pas trop en cas de changement de vitesse de proc car des andouilles partaient du principe que la fréquence est fixe). https://fr.wikipedia.org/wiki/RDTSC attention pour le printf, c'est un nombre 64 bits.

    "La première sécurité est la liberté"

  • [^] # Re: C'est trop limité ;)

    Posté par  (site web personnel) . En réponse au journal Galeries de shaders GLSL et fond d'écran animé pour Android. Évalué à 2.

    D'ailleurs, c'est quoi les interfaces des shader présentés plus haut ? Que sont les données 3d d'entrée ?

    gl_FragCoord est utilisé en entré et l_FragColor en sortie. J'ai bien compris que la sortie était la couleur d'un pixel. Mais pour le fragCoord, j'ai rien compris, j'ai cru penser que c'était chaque pixel de l'image, mais on dirait que non.

    "La première sécurité est la liberté"

  • # Cela a l'air génial

    Posté par  (site web personnel) . En réponse à la dépêche Synfig Studio 0.64.0. Évalué à 10.

    Mais il serait sympa de présenter l'outil pour ceux qui ne connaisse pas : ses points forts, ses points faibles, ses cas d'usages (film d'animation uniquement, ou aussi vidéo de présentation qui pourrait remplacer les powerpoints animés lors des mariages :).

    "La première sécurité est la liberté"

  • # mise à jour runtime ?

    Posté par  (site web personnel) . En réponse à la dépêche Sortie de GNU Guix 0.2. Évalué à 5.

    Est-ce qu'il existe une fonctionnalité qui permet la mise à jour à la manière de celle de firefox sous windows ? Genre transparente, sans se prendre la tête avec des diff avec la version installé ou des dépendances externes ?

    VLC propose une mise à jour, mais elle provoque une désinstallation et une réinstallation, de plus le téléchargement n'est pas fait en background, cela empêche d'utiliser l'outil pendant quelques minutes, au lieu de nécessité un simple redémarage.

    "La première sécurité est la liberté"

  • [^] # Re: Oui

    Posté par  (site web personnel) . En réponse au journal Un debugger est-il indispensable ?. Évalué à 2.

    En général, cela te donne une bonne idée du bug en question : un mix unsigned/signed, un décalage de bit mal fait, un integer overflow, etc…

    "La première sécurité est la liberté"

  • [^] # Re: Super workflow

    Posté par  (site web personnel) . En réponse au journal Un debugger est-il indispensable ?. Évalué à 2.

    Oui.

    Cela permet d'éviter des tests multiple à travers toutes les api. Tu découpes ton code en vérif, puis ensuite, tu considères tes entrées comme valide. Ton filet de sécurité est ton assert(), qui ne coute rien dans un code de production.

    Cela permet aussi de faire un paquet de test, sans avoir "d'oracle" qui produit les données attendus. Ce qui peut être très chiant, tellement chiant que beaucoup de personne génèrent les fichiers une fois, et les utilisent comme référence. Cela ne teste rien du tout. Cela ne peut servir que de test anti regression.

    "La première sécurité est la liberté"

  • [^] # Re: Super workflow

    Posté par  (site web personnel) . En réponse au journal Un debugger est-il indispensable ?. Évalué à 2.

    Ma seul certitude, pour l'instant, c'est que coder avec des assert() est priceless, quand c'est possible (et léger), mais la manipulation de fichier est un peu trop complexe pour cela.

    "La première sécurité est la liberté"

  • [^] # Re: Super workflow

    Posté par  (site web personnel) . En réponse au journal Un debugger est-il indispensable ?. Évalué à 1.

    En général, les frameworks de tests essaye de faire le café, résultat tu peux passer plus de temps à debuguer un test qu'à coder, donc l'intérêt diminue fortement.

    "La première sécurité est la liberté"

  • [^] # Re: Super workflow

    Posté par  (site web personnel) . En réponse au journal Un debugger est-il indispensable ?. Évalué à 1.

    tu as donc une lib pour tester les fichiers ? Des gestions de regexp par exemple ?

    "La première sécurité est la liberté"

  • [^] # Re: Super workflow

    Posté par  (site web personnel) . En réponse au journal Un debugger est-il indispensable ?. Évalué à 1.

    donc, tout le src/* avec un seul test/toto.c et tout dans un main.

    Tu ne scripts pas, par exemple pour utiliser diff ? Parfois, j'ai la flemme de faire des tests complets, or un bon gros exemple, est un bon moyen de vérifier que rien n'a cassé avec le diff issue d'une référence généré précédemment.

    "La première sécurité est la liberté"

  • [^] # Re: Super workflow

    Posté par  (site web personnel) . En réponse au journal Un debugger est-il indispensable ?. Évalué à 2.

    Comment tu gères ta base de teste unitaire ? Avec un fonction test() dans chaque fichier ? Et une fonction pour l'appeler dans le binaire principal ? Un binaire spécial ? Un truc de build plus complexe pour recompiler chaque fichier avec un harnais ?

    "La première sécurité est la liberté"

  • [^] # Re: norme ?

    Posté par  (site web personnel) . En réponse à la dépêche Open Build Service en version 2.4. Évalué à 1.

    Toutes les distribs ont leur robot. Il ne simplifie que peu de chose au final.

    "La première sécurité est la liberté"

  • # norme ?

    Posté par  (site web personnel) . En réponse à la dépêche Open Build Service en version 2.4. Évalué à 2.

    Quel norme vous suivez pour créer les paquets ? J'ai cru comprendre qu'il y avait un paquet de script dans les rpm, et que cela fait une différence entre mageia et red hat par exemple (menu, etc…)

    "La première sécurité est la liberté"

  • [^] # Re: Sombre futur

    Posté par  (site web personnel) . En réponse à la dépêche Des infos sur les Google Glass. Évalué à 2.

    Si c'est tellement un problème, il suffit d'interdire à Google de faire un traitement déporté de la vidéo sur ces serveurs, comme le il le font pour la commande vocale.

    "La première sécurité est la liberté"