J'ai besoin de pouvoir donner la représentation hexagonale d'un hachage SHA512. Peut-être que je n'ai tout simplement pas l'air assez difficile, mais je pouvais trouver des fonctions sur Hackage pour le faire. J'ai donc écrit une implémentation en utilisant J'ai mis ma mise en œuvre sur GitHub comme un gist: https://gist.github.com/2356925 . Le fichier comprend également une implémentation simple basée sur Quelqu'un veut faire un coup de poignard pour l'améliorer? P> < / p> non enfoncé code>. C'est certainement assez rapide à mes besoins, mais je me demande si quelqu'un connaît une approche plus rapide.
numeric.showhex code>, un test rapide et un critère de référence. Mes résultats actuels de la version simple par rapport à la version code> de p> p>
3 Réponses :
Aller au niveau inférieur,
benchmarking simple mean: 2.603306 ms, lb 2.583054 ms, ub 2.629212 ms, ci 0.950 std dev: 116.5341 us, lb 81.61409 us, ub 191.3293 us, ci 0.950 found 7 outliers among 100 samples (7.0%) 2 (2.0%) low severe 3 (3.0%) low mild 1 (1.0%) high severe variance introduced by outliers: 42.490% variance is moderately inflated by outliers benchmarking unfoldrN_MS1 mean: 83.19349 us, lb 82.88474 us, ub 83.58283 us, ci 0.950 std dev: 1.771460 us, lb 1.486104 us, ub 2.174729 us, ci 0.950 found 14 outliers among 100 samples (14.0%) 12 (12.0%) high mild 2 (2.0%) high severe variance introduced by outliers: 14.225% variance is moderately inflated by outliers benchmarking LowHex mean: 24.50564 us, lb 24.41683 us, ub 24.61241 us, ci 0.950 std dev: 497.1908 ns, lb 415.6366 ns, ub 609.7594 ns, ci 0.950 found 5 outliers among 100 samples (5.0%) 5 (5.0%) high mild variance introduced by outliers: 13.256% variance is moderately inflated by outliers
Belle vitesse. Il ne semble que rien de plus rapidement, je suppose que ceci gagne. Pouvez-vous penser à des paquets là où il serait logique d'ajouter cette fonction?
On dirait que je viens d'utiliser la dernière fois que je voulais faire ça. C'était en conjonction avec la bibliothèque Crypto.hash IIRC. Je doute que la performance est si grande, mais comparée à la fonction (lente) SHA512 elle-même, pourquoi la conversion hexagone serait-elle un problème? P> p>
La fonction que vous recherchez est data.bytestring.builder.bytestringhex code> (ou sa fonction jumelle pour les bytestrings paresseux), qui est fourni par le nouveau constructeur bytactring. I étendue vos points de repère et obtenez les résultats suivants sur ma machine:
benchmarking size 5000/simple mean: 2.469847 ms, lb 2.440422 ms, ub 2.522850 ms, ci 0.950 std dev: 196.5903 us, lb 116.8811 us, ub 318.4720 us, ci 0.950 found 16 outliers among 100 samples (16.0%) 3 (3.0%) low severe 2 (2.0%) low mild 10 (10.0%) high severe variance introduced by outliers: 70.721% variance is severely inflated by outliers benchmarking size 5000/unfoldrN_MS1 mean: 102.6075 us, lb 101.7695 us, ub 104.0159 us, ci 0.950 std dev: 5.468574 us, lb 3.681120 us, ub 8.080665 us, ci 0.950 found 16 outliers among 100 samples (16.0%) 6 (6.0%) high mild 10 (10.0%) high severe variance introduced by outliers: 51.455% variance is severely inflated by outliers benchmarking size 5000/byteStringHexFixed mean: 5.675204 us, lb 5.636296 us, ub 5.750211 us, ci 0.950 std dev: 264.3726 ns, lb 140.9738 ns, ub 398.8494 ns, ci 0.950 found 5 outliers among 100 samples (5.0%) 4 (4.0%) high severe variance introduced by outliers: 44.476% variance is moderately inflated by outliers
WhoswtThabeur.com/private/pmbfogqiht Blam!