téthis a écrit 1323 commentaires

  • [^] # Re: Un bench vaut ce qu'il vaut

    Posté par  . En réponse au journal Javascript plus rapide que python ! (une suite possible). Évalué à 2.

    > on pourra aussi segmenter le crible en différents morceaux qui tiennent dans le cache L1

    Ce qu'il faut c'est un alignement des données (+padding) afin que le CPU n'ait pas à décaler des octets pour accéder aux éléments et un code assez compact. Le code généré à partir du C doit être tout riquiqui, donc il ne pose pas problème. On doit, à vue de nez, tenir sur une trentaine d'instructions assembleur max pour l'algo.

    L'optimisation -O3 est tentante mais elle se fait battre assez (trop ?) souvent par -Os.

    ÀMHA le problème à résoudre ici est surtout un problème de pénalités suite à l'adressage d'une quantité importante de mémoire.

    Si il me restait de la motivation pour ces choses là, j'aurais tenté de faire des tronçons de 100 000 éléments (à voir et à expérimenter) avec les données dans le code, puis stocker les résultats à la fin de tout les calculs du tronçon. Ça sur n boucles, sans malloc(), sans free(), il me semble que ça donnerait quelque chose d'assez intéressant.

    The capacity of the human mind for swallowing nonsense and spewing it forth in violent and repressive action has never yet been plumbed. -- Robert A. Heinlein

  • [^] # Re: Un bench vaut ce qu'il vaut

    Posté par  . En réponse au journal Javascript plus rapide que python ! (une suite possible). Évalué à 2.

    Correction: je n'avais pas commenté la seconde boucle, juste la sortie à l'affichage.

    Il y a maintenant récupération de la date* (je ne sais pas faire autrement avec ce langage que je n'ai pratiquement jamais utilisé, la précision à la seconde devrait suffire) en trois lieux :
    – entrée de la première boucle
    – entrée de la seconde boucle
    – sortie du programme.

    J'ai fait tourner le programme dans une application VTE (sakura) et en console TTY.

    Dans Sakura, il y a 41 secondes pour la première boucle et 10 secondes la boucle de l'affichage (+ vérification des conditions). Dans un autre test il y a eu 10 secondes pour l'affichage et 42 secondes pour le calcul. On est pas à un arrondi de seconde près.

    En TTY, 41 secondes pour les calculs et 4 secondes pour l'affichage. Idem lors d'un deuxième test.

    C'est cohérent. J'essaierai de refaire les tests à la fraîche car il commence à faire horriblement chaud, ce afin de voir si ça revient aux 36 secondes de cette nuit.

    * http://nekovm.org/doc/view/date

    The capacity of the human mind for swallowing nonsense and spewing it forth in violent and repressive action has never yet been plumbed. -- Robert A. Heinlein

  • [^] # Re: Un bench vaut ce qu'il vaut

    Posté par  . En réponse au journal Javascript plus rapide que python ! (une suite possible). Évalué à 2.

    Ch'uis chaud. La température dans l'apart. aussi.

    Comme j'avais l'impression que l'affichage des résultats prenait pas mal de temps, j'ai commenté la dernière boucle pour avoir une idée du temps nécessaire afin de remplir la table.

    real 0m36.748s
    user 0m36.238s
    sys 0m0.243s

    Pratiquement un tiers en plus pour l'affichage. :/

    On arrive à un temps légèrement supérieur (5s de plus avec l'affichage), sur un nombre de calculs dix fois plus grand et sur une machine moins puissante que celle qui a servie à exécuter les programmes (Archlinux sur un Celeron Tualatin 1,2 GHz).

    Je suis pris d'un doute soudainement.

    The capacity of the human mind for swallowing nonsense and spewing it forth in violent and repressive action has never yet been plumbed. -- Robert A. Heinlein

  • [^] # Re: Un bench vaut ce qu'il vaut

    Posté par  . En réponse au journal Javascript plus rapide que python ! (une suite possible). Évalué à 3.

    Le 2ème algo. en neko [http://nekovm.org/index]

    var NB_ENTRIES = 10000000
    var HALF_NB_ENTRIES = NB_ENTRIES / 2
    var d = $amake(NB_ENTRIES)

    var i = 2
    while (i <= HALF_NB_ENTRIES)
    {
    var j = 2 * i
    while (j <= NB_ENTRIES)
    {
    if (d[j] == null)
    d[j] = 1 + i
    else
    d[j] += i

    j += i
    }
    i += 1
    }

    i = 1
    while (i <= NB_ENTRIES)
    {
    if (d[i] < NB_ENTRIES && d[d[i]] == i && i <= d[i])
    $print(i, " ", d[i], "\n")

    i += 1
    }


    real 0m48.915s
    user 0m39.157s
    sys 0m0.327s

    Erf…

    PS: J'ai ajouté HALF_NB_ENTRIES parce que j'ai vu dans le bytecode que NB_ENTRIES/2 était calculé à chaque itération.

    The capacity of the human mind for swallowing nonsense and spewing it forth in violent and repressive action has never yet been plumbed. -- Robert A. Heinlein

  • [^] # Re: Un bench vaut ce qu'il vaut

    Posté par  . En réponse au journal Javascript plus rapide que python ! (une suite possible). Évalué à 2.


    $ time lua friend.lua
    6 6
    28 28
    220 284
    496 496
    1184 1210
    2620 2924
    5020 5564
    6232 6368
    8128 8128
    10744 10856
    12285 14595
    17296 18416
    63020 76084
    66928 66992
    67095 71145
    69615 87633
    79750 88730
    100485 124155
    122265 139815
    122368 123152
    141664 153176
    142310 168730
    171856 176336
    176272 180848
    185368 203432
    196724 202444
    280540 365084
    308620 389924
    319550 430402
    356408 399592
    437456 455344
    469028 486178
    503056 514736
    522405 525915
    600392 669688
    609928 686072
    624184 691256
    635624 712216
    643336 652664
    667964 783556
    726104 796696
    802725 863835
    879712 901424
    898216 980984
    947835 1125765
    998104 1043096
    1077890 1099390
    1154450 1189150
    1156870 1292570
    1175265 1438983
    1185376 1286744
    1280565 1340235
    1328470 1483850
    1358595 1486845
    1392368 1464592
    1466150 1747930
    1468324 1749212
    1511930 1598470
    1669910 2062570
    1798875 1870245
    2082464 2090656
    2236570 2429030
    2652728 2941672
    2723792 2874064
    2728726 3077354
    2739704 2928136
    2802416 2947216
    2803580 3716164
    3276856 3721544
    3606850 3892670
    3786904 4300136
    3805264 4006736
    4238984 4314616
    4246130 4488910
    4259750 4445050
    4482765 5120595
    4532710 6135962
    4604776 5162744
    5123090 5504110
    5147032 5843048
    5232010 5799542
    5357625 5684679
    5385310 5812130
    5459176 5495264
    5726072 6369928
    5730615 6088905
    5864660 7489324
    6329416 6371384
    6377175 6680025
    6955216 7418864
    6993610 7158710
    7275532 7471508
    7288930 8221598
    7489112 7674088
    7577350 8493050
    7677248 7684672
    7800544 7916696
    7850512 8052488
    8262136 8369864
    8619765 9627915
    9071685 9498555
    9199496 9592504
    9339704 9892936
    9363584 9437056

    real 2m3.019s
    user 1m44.610s
    sys 0m4.500s


    :)

    The capacity of the human mind for swallowing nonsense and spewing it forth in violent and repressive action has never yet been plumbed. -- Robert A. Heinlein

  • # Code lua toto2

    Posté par  . En réponse au journal Javascript plus rapide que python ! (une suite possible). Évalué à 5.


    local nb_entries = 10000
    local d = {}
    local i, j

    for i=2,nb_entries/2 do
    for j=2*i,nb_entries,i do
    d[j]= (d[j] or 1) + i
    end
    end

    for i=1,#d do
    if d[i] ~= nil and d[i] < nb_entries and d[d[i]] == i and i <= d[i] then
    print(i,d[i])
    end
    end


    real 0m0.099s
    user 0m0.050s
    sys 0m0.007s

    Ça roxe du ponayz, sachant que l'approche naïve (toto.lua) mettait 21 secondes sur la même machine.

    The capacity of the human mind for swallowing nonsense and spewing it forth in violent and repressive action has never yet been plumbed. -- Robert A. Heinlein

  • [^] # Re: Pour le code lua

    Posté par  . En réponse au journal Javascript plus rapide que python ! (une suite possible). Évalué à 6.

    Puis pour mettre un peu de JIT, LuaJIT (http://luajit.org/) en version 1.1.6.

    Variables locales :
    real 0m3.440s
    user 0m2.623s
    sys 0m0.003s


    Sans :
    real 0m4.894s
    user 0m3.556s
    sys 0m0.007s

    Il faudrait voir ce que ça donne sur la machine qui a fait les benchs. :)

    The capacity of the human mind for swallowing nonsense and spewing it forth in violent and repressive action has never yet been plumbed. -- Robert A. Heinlein

  • # Pour le code lua

    Posté par  . En réponse au journal Javascript plus rapide que python ! (une suite possible). Évalué à 5.

    http://lua-users.org/wiki/OptimisingUsingLocalVariables

    Il faut utiliser les variables locales pour gagner en vitesse.

    Sur ma machine, avec utilisation de variables locales :
    real 0m18.339s
    user 0m17.366s
    sys 0m0.003s


    Sans :
    real 0m21.045s
    user 0m20.059s
    sys 0m0.007s

    The capacity of the human mind for swallowing nonsense and spewing it forth in violent and repressive action has never yet been plumbed. -- Robert A. Heinlein

  • [^] # Re: Et donc bientôt, la redevance TV pour les ordinateurs...

    Posté par  . En réponse au journal La télé de ratrapage de France Télévisions arrive!. Évalué à 5.

    Ok pour l'INA, quant au reste…

    La radio publique : pour être rester plusieurs jours sans électricité suite à plusieurs tempêtes , ce n'est pas la radio publique que j'ai écouté mais bien la radio locale qui fournissait bien plus d'informations sur la situation locale (dégâts, rétablissement des lignes). Les Radios France * étaient plutôt médiocres sur ce point.

    La télé comme outil de formation en cas de pandémie : heu… quand les écoles sont fermées et que plus rien ne fonctionne parce que la peur de la contagion domine, je ne pense pas que fournir des cours aux enfants, ados soit la priorité. D'autant plus que la télé devraient fournir des cours pour toutes les classes (CE1, CE2, CM1, CM2, 6ème, 5ème, 4ème, 3ème, 2nde, 1ère et terminale), ce qui fait assez peu d'heures hebdomadaires réellement utiles pour les élèves de chaque classe. Des cahiers de vacances ont sûrement plus d'effets pour un prix moindre.

    Pour un niveau vigipirate écarlate : Si on bloque un pays tout entier pour un plan vigipirate, quelque chose me dit que le remède est encore plus terrible que le mal qu'il est censé combattre.

    > Pourquoi en cas de coup d'état, les putchistes commenceraient par les médiats si ce n'était pas aussi stratégique ?

    Sachant que pour contrôler les médias publics il faut beaucoup de ressources, ressources qui seraient bien plus utiles pour faire le putsch, il semble dangereux de vouloir contrôler le réseau au lieu de mettre son énergie à réussir son putsch. Au pire, on le neutralise les nœuds stratégiques en les sabotant, au mieux on monte sa propre radio pirate (si si, j'ai déjà connu des radios de propagandes dans des pays dont je tairais le nom, radios qui passaient, entre deux pages musicales sympas, des messages en boucle comme quoi nos dirigeants nous avaient commandé des cercueils par milliers.). Puis il faut savoir qu'il y a deux réseaux : un réseau public et un réseau stratégique (comme, pour ne citer qu'une partie visible, les grandes antennes qui traînent à côté des gendarmeries). Le choix est vite fait.

    Donc, mis à part l'INA – même si je pense que la majeure partie de ce que nous diffusons devrait être rapidement oublié – le reste de l'analyse de ton argumentation donne plutôt l'impression que la redevance pour tous est une taxe obligatoire dans le cas de catastrophes majeures (guerre, pandémie…).

    The capacity of the human mind for swallowing nonsense and spewing it forth in violent and repressive action has never yet been plumbed. -- Robert A. Heinlein

  • [^] # Re: Oh mais il faut arrêter avec ces Chinois

    Posté par  . En réponse au journal Mais de qui se moque-t-on?. Évalué à 6.

    Un sous-traitant pour les souris Microsoft qui aura utilisé le moule du socle pour une autre gamme de souris tout en espérant que Gniarf ne le remarque pas. :)

    The capacity of the human mind for swallowing nonsense and spewing it forth in violent and repressive action has never yet been plumbed. -- Robert A. Heinlein

  • # L'importateur qu'on vous dit.

    Posté par  . En réponse au journal Mais de qui se moque-t-on?. Évalué à 9.

    C'est l'importateur des alimentation Heden, CPA, qui a poursuivi l'éditeur de Canard PC.

    Si mes souvenirs sont bons (flemme de relire le dossier du Canard), la marque Heden est pour le marché français. Dans les autres pays, les mêmes alimentations se voient estampillées d'un nom de marque différent.

    The capacity of the human mind for swallowing nonsense and spewing it forth in violent and repressive action has never yet been plumbed. -- Robert A. Heinlein

  • [^] # Re: Ah mince c'est déja plus vendredi ...

    Posté par  . En réponse au journal [HS] Probablement le plus gros foutage de gueule de l'année ? la lettre d'Apple. Évalué à 10.

    Il existe encore des marchéchaux-ferrants ; les chevaux n'ont pas disparus de la surface de la planète, pas plus que les équidés n'ont vu leurs sabots (ongles) être remplacés par des sabots en adamantium.

    Les marchéchaux-ferrants se font peut-être rares en ville depuis que les automobiles ont remplacé les hippomobiles mais ils n'ont pas disparu et ne disparaîtront sans doute jamais.

    The capacity of the human mind for swallowing nonsense and spewing it forth in violent and repressive action has never yet been plumbed. -- Robert A. Heinlein

  • # Plusieurs modèles…

    Posté par  . En réponse au journal [HS] Probablement le plus gros foutage de gueule de l'année ? la lettre d'Apple. Évalué à 8.

    … pour le prix d'un : un iPhone et des iBars virtuels.

    The capacity of the human mind for swallowing nonsense and spewing it forth in violent and repressive action has never yet been plumbed. -- Robert A. Heinlein

  • [^] # Re: Web != Internet

    Posté par  . En réponse à la dépêche Comment accéder à Internet (un guide de 2025). Évalué à 10.

    Hey papy. Il faut arrêter de lire tes vieux livres d'histoire; Il a été prouvé maintes et maintes fois que c'était des tracts de propagandes socialistes destinés à nous faire croire qu'il y a eu, dans le passé, d'autres méthodes de fonctionnement que celle dictée par notre Souverain.

    Quand bien même cela eût été vrai, le fait que cela n'existe plus prouve que cela était non viable, un système conçu par des rêveurs déconnectés de la réalité. J'aime le passage quand il est écrit que les gens choisissaient leur président. Quelle folie ! Sérieusement, des incompétents qui choisissaient leur dirigeant, et pourquoi pas l'égalité entre les castes sociales ?

    Il y a l'internet selon Orange et c'est tout. Il parait que les terroristes ont fait tomber des guides de l'internet afin de pouvoir perpétrer leurs méfaits, comme le téléchargement illégal et poser des bombes.Si j'en croise un, je le dénonce illico. Je t'ai signaler parce que, avec tes idées de révolutionnaire sanglants, tu mérites une enquête de la police TMG.

    _________________

    méçage tradui par texto-fr, le site ki teu fé écrir drole.

    The capacity of the human mind for swallowing nonsense and spewing it forth in violent and repressive action has never yet been plumbed. -- Robert A. Heinlein

  • [^] # Re: astuce pour les candidats

    Posté par  . En réponse au journal Etre payé cet été pour bosser sur Indefero ?. Évalué à 4.

    > par effet d'aubaine, il peut amener certains employeur à pousser ses salariés vers ce type de "contrats" qui, en ce temps de crise est tout sauf équitable.

    Il y a présomption de subordination si l'auto-entrepreneur n'a qu'un seul client, par exemple son ancien patron. Ils ont rectifié le tir sur l'auto-entrepreneuriat après s'être rendu compte que ça pouvait servir à « délocaliser » des postes.

    Il y a donc un angle d'attaque pour l'auto-entrepreneur « forcé ».

    The capacity of the human mind for swallowing nonsense and spewing it forth in violent and repressive action has never yet been plumbed. -- Robert A. Heinlein

  • [^] # Re: Je trouve ça affligeant

    Posté par  . En réponse au journal Mon téléphone est mort, vive mon (nouveau) téléphone. Évalué à 1.

    Il faut une majuscule à Charité pour faire sortir tout l'absurdité de la phrase : La Charité est un hôpital.

    The capacity of the human mind for swallowing nonsense and spewing it forth in violent and repressive action has never yet been plumbed. -- Robert A. Heinlein

  • [^] # Re: Oiseau de Tonnerre

    Posté par  . En réponse à la dépêche Thunderbird 3.1 est sorti. Évalué à 3.

    Sous sylpheed, il y a deux fichiers par répertoire pour la gestion des mails :
    - .sylpheed_cache qui comporte le titre des mails et quelques informations (auteur, date...)
    - .sylpheed_mark qui visiblement sert à stocker l'état des mails (lu, colorié...)

    On peut donc facilement imaginer que c'est la solution 3 qui est présente dans sylpheed.

    The capacity of the human mind for swallowing nonsense and spewing it forth in violent and repressive action has never yet been plumbed. -- Robert A. Heinlein

  • [^] # Re: Ironie...

    Posté par  . En réponse à la dépêche Mandriva sauvé par des investisseurs. Évalué à 2.

    Texstar ?

    The capacity of the human mind for swallowing nonsense and spewing it forth in violent and repressive action has never yet been plumbed. -- Robert A. Heinlein

  • # Et si ?

    Posté par  . En réponse au journal Le moment crucial. Évalué à 4.

    Et si l'équipe de France de football gagnait cette coupe et qu'une personne se tuait en tombant d'un pont pendant les réjouissances populaires, ce serait dramatique de voir des lois sortir contre les réjouissances sportives.

    The capacity of the human mind for swallowing nonsense and spewing it forth in violent and repressive action has never yet been plumbed. -- Robert A. Heinlein

  • [^] # Re: Ruleset Google Fr

    Posté par  . En réponse au journal HTTPS Everywhere. Évalué à 3.

    Tu trouveras sur le site des extensions de Mozilla des mises à jour pour accéder directement en https Google, Lxquick et DuckDuckGo depuis la boite de recherche.

    https://addons.mozilla.org/fr/firefox/search?q=ssl&cat=4(...)

    The capacity of the human mind for swallowing nonsense and spewing it forth in violent and repressive action has never yet been plumbed. -- Robert A. Heinlein

  • [^] # Re: Enregistrement des recherches

    Posté par  . En réponse au journal HTTPS Everywhere. Évalué à 2.

    Il y a les moteurs de recherche qui n'enregistrent pas les IP (ou qui prétendent ne pas le faire), comme Ixquick, et les sites qui servent intermédiaires (genre scroogle) empêchant le vilain site archiveur de savoir qui se trouve réellement derrière la requête.

    Moralité : je ne confonds pas.

    The capacity of the human mind for swallowing nonsense and spewing it forth in violent and repressive action has never yet been plumbed. -- Robert A. Heinlein

  • # Enregistrement des recherches

    Posté par  . En réponse au journal HTTPS Everywhere. Évalué à 2.

    Ça tombe bien, une directive européenne risque d'imposer l'enregistrement de toutes les recherches sur les moteurs de recherche.

    La cible de cette directive, dont l'application a été étendue, sont bien évidement les pédophiles et les auteurs de harcèlements sexuelles.

    http://pro.clubic.com/legislation-loi-internet/actualite-348(...)

    The capacity of the human mind for swallowing nonsense and spewing it forth in violent and repressive action has never yet been plumbed. -- Robert A. Heinlein

  • [^] # Re: alors que c'est l'inverse

    Posté par  . En réponse au journal Internet m'a tuer anonymement. Évalué à 2.

    > Ça je n'en suis pas sûr. C'est pas parce que la personne en fasse de toi fait quelque chose d'illégal que tu peux faire ce que tu veux.

    Il ne s'agit pas de faire ce qu'on veux mais de ne pas répondre à sa demande. Et de le faire avec plus de finesse qu'avec un « je refuse de vous donner mon identité ».

    The capacity of the human mind for swallowing nonsense and spewing it forth in violent and repressive action has never yet been plumbed. -- Robert A. Heinlein

  • [^] # Re: alors que c'est l'inverse

    Posté par  . En réponse au journal Internet m'a tuer anonymement. Évalué à 4.

    Le contrôle et la vérification d'identité sont encadrés par des lois [http://vosdroits.service-public.fr/particuliers/F1036.xhtml]. Il est donc fortement probable que donner des informations erronées sur notre identité lorsqu'un tiers non autorisé en demande n'est pas interdit.

    The capacity of the human mind for swallowing nonsense and spewing it forth in violent and repressive action has never yet been plumbed. -- Robert A. Heinlein

  • [^] # Re: j'ai pas bien compris comment ca marche

    Posté par  . En réponse au journal Gobject Introspection, Parrot, Mono, JVM etc.. Évalué à 9.

    Un exemple de l'utilisation de GI avec Vala pour créer des bindings (bibliothèques de liaison ?).

    http://live.gnome.org/Vala/Bindings

    La partie la plus importante : « The .gi file defines the objects, structures, constants, enumerations and functions in an abstract markup language. Since GLib and GObject follow a well-defined naming convention for object members, functions, etc., it's possible to generate these independent definitions from the source code. The resulting .gi file is then used to generate the .vapi file that defines the vala bindings. ».

    En gros, grâce à GI, on se retrouve avec une définition précise des fonctions de la bibliothèque qu'on veut « binder ». Il suffit alors de la passer dans un outil adapté au langage qu'on utilise pour créer automatiquement le code kivapreskbien(tm).

    The capacity of the human mind for swallowing nonsense and spewing it forth in violent and repressive action has never yet been plumbed. -- Robert A. Heinlein