Script tournant bien sur Linux Cpu i3. mais pas sur W10 Cpu i7. Quelle solution?

gobibigo Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   -  
gobibigo Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

j'utilise un petit script avec des fonctions "process" pour streesser tous les Cpu d'une machine.
Le script ne fonctionne pas sur un i7 sous Windows.
Quel modif apporter a ce script pour reussir a le faire tourner sous windows ?
Merci !!

code joint et rapport du bug :

from multiprocessing import Process
import os
import math
import time

depart = time.perf_counter()

# 40 sec pour 100M de fois

def calc():
	for i in range(0, 1000):
			i = i + 123456789
			i = i * 123456789
			i = i / 1.3333

processes = []

for i in range(os.cpu_count()):
	print('registering PROCESS %d' % i)
	processes.append(Process(target=calc))

for process in processes:
	process.start()

for process in processes:
	process.join()

final = time.perf_counter()
    # Print results
print()
print(f'PROCESS Estimate is {round(final-depart,4)} seconds(s)')



Bug repport :

registering PROCESS 1
registering PROCESS 2
registering PROCESS 3
registering PROCESS 4
registering PROCESS 5
registering PROCESS 6
registering PROCESS 7
registering PROCESS 0
registering PROCESS 1
Traceback (most recent call last):
registering PROCESS 2
File "<string>", line 1, in <module>
registering PROCESS 3
registering PROCESS 4
registering PROCESS 5
registering PROCESS 6
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\multiprocessing\spawn.py", line 116, in spawn_main
registering PROCESS 7
exitcode = _main(fd, parent_sentinel)
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\multiprocessing\spawn.py", line 125, in _main
Traceback (most recent call last):
File "<string>", line 1, in <module>
prepare(preparation_data)
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\multiprocessing\spawn.py", line 236, in prepare
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\multiprocessing\spawn.py", line 116, in spawn_main
exitcode = _main(fd, parent_sentinel)
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\multiprocessing\spawn.py", line 125, in _main
prepare(preparation_data)
_fixup_main_from_path(data['init_main_from_path'])
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\multiprocessing\spawn.py", line 287, in _fixup_main_from_path
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\multiprocessing\spawn.py", line 236, in prepare
main_content = runpy.run_path(main_path,
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\runpy.py", line 265, in run_path
_fixup_main_from_path(data['init_main_from_path'])
return _run_module_code(code, init_globals, run_name,
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\runpy.py", line 97, in _run_module_code
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\multiprocessing\spawn.py", line 287, in _fixup_main_from_path
_run_code(code, mod_globals, init_globals,
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\runpy.py", line 87, in _run_code
exec(code, run_globals)
File "C:\Users\Terence\Desktop\enge-processes.py", line 27, in <module>
process.start()
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\multiprocessing\process.py", line 121, in start
self._popen = self._Popen(self)
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\multiprocessing\context.py", line 224, in _Popen
return _default_context.get_context().Process._Popen(process_obj)
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\multiprocessing\context.py", line 327, in _Popen
registering PROCESS 0
registering PROCESS 1
registering PROCESS 2
registering PROCESS 3
registering PROCESS 4
registering PROCESS 5
registering PROCESS 6
registering PROCESS 7
return Popen(process_obj)
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\multiprocessing\popen_spawn_win32.py", line 45, in __init__
main_content = runpy.run_path(main_path,
Traceback (most recent call last):
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\runpy.py", line 265, in run_path
prep_data = spawn.get_preparation_data(process_obj._name)
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\multiprocessing\spawn.py", line 154, in get_prepara



Configuration: Linux / Chrome 84.0.4147.105
A voir également:
  • Script tournant bien sur Linux Cpu i3. mais pas sur W10 Cpu i7. Quelle solution?
  • Temperature cpu - Guide
  • Cpu burner - Télécharger - Optimisation
  • Stress cpu - Télécharger - Informations & Diagnostic
  • Cpu z - Télécharger - Informations & Diagnostic
  • Cpu - Guide

9 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour,
as-tu écrit ce code?
dans quel contexte fais-tu cela?
0
gobibigo Messages postés 20 Date d'inscription   Statut Membre Dernière intervention  
 
au fait - avec un range de 1.000.000, le code retroune quel temps en seconde sur ta machine ?
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > gobibigo Messages postés 20 Date d'inscription   Statut Membre Dernière intervention  
 
0.7127 seconds(s)
0
gobibigo Messages postés 20 Date d'inscription   Statut Membre Dernière intervention  
 
je l ai adapté, c'est pour comparer la vitesse de calcul sur des milliers de loops d'une machine a une autre. Choix d achat d'une machine...traitement de calcul sur de grande liste d enregistrement. pourquoi la question ?
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
pour t'aider au mieux.
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
ceci fonctionne mieux chez moi:
from multiprocessing import Process
import os
import math
import time
def calc():
    for i in range(0, 1000):
            i = i + 123456789
            i = i * 123456789
            i = i / 1.3333
if __name__ == '__main__':
    depart = time.perf_counter()
    processes = []
    for i in range(os.cpu_count()):
        print('registering PROCESS %d' % i)
        processes.append(Process(target=calc))
    for process in processes:
        process.start()
    for process in processes:
        process.join()
    final = time.perf_counter()
        # Print results
    print(f'PROCESS Estimate is {round(final-depart,4)} seconds(s)')
0
gobibigo Messages postés 20 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour @yg-be

Je reviens vers toi, aux vu de l'affichage que j'obtient avec le script du dessus.
celui-ci, renvoi un calcul calcul] du type :

10000 loops avec 1 core = 1 sec et 4 core = 4 sec....

la ou en fait je cherche a obtenir 1 core= 1 sec. et 4 core = 0.25 sec

Donc, une répartitions des 10000 loops sur 4 coeurs, - sinon, ce n'est pas un calcul multi-processeurs avec au final
un "temps de calcul global" environ 4 fois plus rapide, n'est-ce pas
...est-ce que tu vois ce que je veut dire ?
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > gobibigo Messages postés 20 Date d'inscription   Statut Membre Dernière intervention  
 
il y a eu beaucoup de versions du script, je ne sais pas donc si ton calcul est correct.
en voyant les chiffres, j'aurais tendance à suspecter que le calcul n'est pas correct.
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
as-tu essayé ceci:
from multiprocessing import Process
import os
import math
import time
loops=5*10**6
def calc():
    for i in range(0, loops):
            i = i + 123456789
            i = i * 123456789
            i = i / 1.3333
if __name__ == '__main__':
    for pc in range(1,os.cpu_count()+5):
        depart = time.perf_counter()
        processes = []
        for i in range(pc):
            #print('registering PROCESS %d' % i)
            processes.append(Process(target=calc))
        for process in processes:
            process.start()
        for process in processes:
            process.join()
        final = time.perf_counter()
            # Print results
        mlps=round(pc*loops/(final-depart)/10**6,1)
        print(f'{round(final-depart,4)} seconds(s) with {pc} processes each doing {loops} loops : {mlps} Mloop/s')
0
gobibigo Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
oui, je pense..
ne trouvant pas ...je suis repassé a la version GO,
et la !! "flash ben-oui !!... il suffirait de rajouter une division manquante sur le calcul estimée du temps pour que cela "colle" :) donc .... elapsed := time.Since(start) / (4) << nombre de core utilisés - nechpas ?!!
(enfin j imagine que cela viendrait de la...)
je retoucherais le script sous python - mais sa lenteur intrinseque me pousse a continuer sous Go *je crois comprendre que Cython serait pas mal rapide mais pas vraiment mis a jour....
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > gobibigo Messages postés 20 Date d'inscription   Statut Membre Dernière intervention  
 
il ne s'agit pas du nombre de cores utilisés, mais du nombre de processus.
au lieu de diviser le temps par le nombre de processus, qui produit une valeur qui n'a aucune signification, il est peut-être plus approprié, si ce n'est déjà fait, de compter le nombre total de loops, pas le nombre de loops pas processus.
si tu calculais en loops/secondes, ce serait beaucoup plus clair.
si tu veux être conseillé, partage ton code.
0
gobibigo Messages postés 20 Date d'inscription   Statut Membre Dernière intervention  
 
Alors, c est intéressant mais les temps que j obtient sont moindres (du a Linux je suppose.)

Questions :
ta machine est-ELLE sous Windows10 ? (pas de bug lors du test alors)
Quel est le Modele de son CPU/Freq/core ?

ici sur un i3 /8Gb Ram j'obient pour...
1M/0.5852
100M/39.8392 (...61.0476 sec /PC Celeron)
550M/210.5996 sec
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
W10, i7, 6 cores, 12 logical processors, de 3 à 3.9 GHz pendant les tests

il y a 6 cores, et os.cpu_count donne 12, le nombre de logical processors

PROCESS Estimate is 2.3616 seconds(s) for 10000000 loops with 1 processes
PROCESS Estimate is 2.6499 seconds(s) for 10000000 loops with 2 processes
PROCESS Estimate is 2.5299 seconds(s) for 10000000 loops with 3 processes
PROCESS Estimate is 2.4333 seconds(s) for 10000000 loops with 4 processes
PROCESS Estimate is 2.5475 seconds(s) for 10000000 loops with 5 processes
PROCESS Estimate is 2.8449 seconds(s) for 10000000 loops with 6 processes
PROCESS Estimate is 3.1563 seconds(s) for 10000000 loops with 7 processes
PROCESS Estimate is 3.612 seconds(s) for 10000000 loops with 8 processes
PROCESS Estimate is 4.0656 seconds(s) for 10000000 loops with 9 processes
PROCESS Estimate is 4.6616 seconds(s) for 10000000 loops with 10 processes
PROCESS Estimate is 5.0652 seconds(s) for 10000000 loops with 11 processes
PROCESS Estimate is 5.5817 seconds(s) for 10000000 loops with 12 processes
PROCESS Estimate is 6.6134 seconds(s) for 10000000 loops with 13 processes
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gobibigo Messages postés 20 Date d'inscription   Statut Membre Dernière intervention  
 
Ok, le collegue a un i7 aussi, mais chez lui ca plante...
ah, mais il a 4 core/8threads. 4ghz
(et peut etre overclockee) :)

i3 : 10M / 3.9559 sec !
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
cela plante avec quelle erreur?
0
gobibigo Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
celle du log au debut du post : Bug repport :
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
les processeurs sont devenus plus performants parce qu'ils font plus rapidement des opérations plus complexes.
si tu ne fais que des opérations si simples, tu n'as peut-être pas besoin de processeur performant.
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > gobibigo Messages postés 20 Date d'inscription   Statut Membre Dernière intervention  
 
bizarre, moi j'ai éliminé cette erreur avec le code en #6.
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
4 cores/8 threads: teste avec 4 process, pas 8!
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
en fait, si tu veux comparer les performances des ordis, tu as intérêt à compter le nombre de boucles par seconde:
2.3883 seconds(s) for 10000000 loops with 1 processes: 4.2 Mloop/s
2.3668 seconds(s) for 10000000 loops with 2 processes: 8.5 Mloop/s
2.4471 seconds(s) for 10000000 loops with 3 processes: 12.3 Mloop/s
2.493 seconds(s) for 10000000 loops with 4 processes: 16.0 Mloop/s
2.9246 seconds(s) for 10000000 loops with 5 processes: 17.1 Mloop/s
2.7775 seconds(s) for 10000000 loops with 6 processes: 21.6 Mloop/s
3.2584 seconds(s) for 10000000 loops with 7 processes: 21.5 Mloop/s
3.6383 seconds(s) for 10000000 loops with 8 processes: 22.0 Mloop/s
4.1269 seconds(s) for 10000000 loops with 9 processes: 21.8 Mloop/s
4.5336 seconds(s) for 10000000 loops with 10 processes: 22.1 Mloop/s
5.0396 seconds(s) for 10000000 loops with 11 processes: 21.8 Mloop/s
5.6006 seconds(s) for 10000000 loops with 12 processes: 21.4 Mloop/s
6.4755 seconds(s) for 10000000 loops with 13 processes: 20.1 Mloop/s
0
gobibigo Messages postés 20 Date d'inscription   Statut Membre Dernière intervention  
 
comment tu obtient les Loops.Sec. ? dans ma fenêtre...il ne met que :
registering PROCESS 0
registering PROCESS 1
registering PROCESS 2
registering PROCESS 3
PROCESS Estimate is 1.4697 seconds(s
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
from multiprocessing import Process
import os
import math
import time
loops=10**7
def calc():
    for i in range(0, loops):
            i = i + 123456789
            i = i * 123456789
            i = i / 1.3333
if __name__ == '__main__':
    for pc in range(1,os.cpu_count()+2):
        depart = time.perf_counter()
        processes = []
        for i in range(pc):
            #print('registering PROCESS %d' % i)
            processes.append(Process(target=calc))
        for process in processes:
            process.start()
        for process in processes:
            process.join()
        final = time.perf_counter()
            # Print results
        mlps=round(pc*loops/(final-depart)/10**6,1)
        print(f'{round(final-depart,4)} seconds(s) for {loops} loops with {pc} processes: {mlps} Mloop/s')

0
gobibigo Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
Ok; merci @yg_be... je vais tester cela demain....Kaput/dodo !
0
gobibigo Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
Ok YG,
Bon...après reflexion je trouve qu'il y a (peut-etre) du bon comme du moins bon dans les dernières modif. avant de retenter le test chez le compère i7....(en fin de journée une fois les modif ci-dessous faites si poss)

NOTE : les "4 Cpu" affichees dans le paneau ressource du moniteur de système font apparemment références aux Thread du processeur (et non au seul Die ("cpu") physique installé dans la machine)
...on verra pour les serveur multi "die" un autre jour :)

Cote modif...
Les Pro :
1/ Les Flops...ça "peut-etre" une info utile en effet si on la cadre bien dans son contexte.
(parfois les Flops avec 2 process dépassent ceux avec 3...donc bon, c est pas si clair que cela devrait l etre au final)

2/ Le test du "Matos" en temps reels; c est vrais que c'est sympa de voir la montée en charge 1 par 1 des "cpu"; on peut pas faire cela avec n importe quel outils...mais bon, utilitee ?

Les Cons :
1- Pourquoi afficher les mesure de 1...a X process, ca encombre trop...donc simplifions simplifions :) !!!

Je pense que en ne gardant QUE les 2 extrêmes ça sera largement utile et précis (et évitera les confusions)
Donc on ne garderait l'affichage pour : 1 et : Tous...
(suivant le modele de CPU installé)

Donc on garderais juste ces 2 cas de figure suivants :
1ier cas :
je veux lancer le calcul de modif. d un fichier a faire en arrière plan MAIS je veut aussi garder plus de ressource pour faire autre chose que cela :
Donc j ai besoin d'estimer combien de temps la modif prendrait juste avec 1 seul Process/Thread(cpu)..
Donc dans le moniteur de Cpu : 1 seul CPU utilisé a 100% ...et les X autres, libre.

2ieme cas :
J ai une grosse modif de fichier a faire - au plus vite - et donc j'utiliserais tous mes CPU et a 100% !
pour un modele i3 / Core 2 / Thread 4. = 4 CPU utilisé a 100%

Question :
Comment ne garder que le Stress sur le 1er et la derniere mesure dans ce Benchmark ?
(1 ou Tout les Cpu)
Idéalement, laisser le script découvrir le nombre de Thread maxi, sans devoir a le saisir a la main.

Voila, merci pour le gros coup de pouce !
:)
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > gobibigo Messages postés 20 Date d'inscription   Statut Membre Dernière intervention  
 
c'est tellement simple que je suis surpris que tu poses la question:
from multiprocessing import Process
import os
import math
import time
loops=10**7
def calc():
    for i in range(0, loops):
            i = i + 123456789
            i = i * 123456789
            i = i / 1.3333
if __name__ == '__main__':
    for pc in (1,os.cpu_count()):
        depart = time.perf_counter()
        processes = []
        for i in range(pc):
            #print('registering PROCESS %d' % i)
            processes.append(Process(target=calc))
        for process in processes:
            process.start()
        for process in processes:
            process.join()
        final = time.perf_counter()
            # Print results
        mlps=round(pc*loops/(final-depart)/10**6,1)
        print(f'{round(final-depart,4)} seconds(s) for {loops} loops with {pc} processes: {mlps} Mloop/s')

0
gobibigo Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
super ... oui c'est tout a fait ça !
pour ma part n'ayant fait que du dev MSaccess... je découvre mon 1er "vrais" langage de dev. avec python depuis 2 mois...et les process/thread ...depuis 2 jours..!
:)
entre temps...je fait des aller-retour vers Go/Erlang/kotlin et je lit beaucoup dessus pour voir comment ce benchmark maison pourrait aussi etre réplique sous ces langages bien que les méthodes sous chacun soit différentes (concurence en lieu du paralelisme)..mais c'est en fait la vitesse finale d'execution qu'il m’intéresserait de connaitre a données et plateformes égales...

Donc si possible j'aimerais confronter le script Go ou Erlang a celui de Python dans ce cas de calcul précis.
Python est beaucoup plus simple ...et j'ai lu qu'il serait aussi "plus lent" que Go/Erlang, mais je souhaiterais le vérifier...

La première pârtie brute de ce projet sous python dans tout les cas a été beaucoup plus simple et rapide grace a toi et a l'autre contributeur ...et github.
je continuerais a chercher a créer son équivalent sous un autre langage d’exécution rapide, tte suggestion bienvenue.
Merci pour le grand coup de pouce en tout cas...cela fait longtemps que tu code en Python ? besoins professionnels ou simple hobby ?
:)
0
duncarpc Messages postés 141 Date d'inscription   Statut Membre Dernière intervention   11
 
salut utilises CPUStressMT, il t'offre meme le pourcentage de stresse
0
gobibigo Messages postés 20 Date d'inscription   Statut Membre Dernière intervention  
 
Ahhh !!!! :)
c est pas dans mon script ca :) !
... ca ne m'intéresse pas ces benchmarks, je connais...
Ils font appel a des calcul sur des formules dont on a aucune utilitée en général, Fibonaci et compagnie...PRRrtttt, c est pas mon pain quotidien - !!
Ce qui m'importe c'est de comparer des opérations précises que j'utiliserais vraiment sur des fichiers ou des bases de données dont je connais la taille de X enregistrement et avec des opérations genre comptabilité ou de modif de contenu soit... division, multiplication ou concaténation bref...du concret de tout les jours... pas des benchmark de Geek sur des calculs de trucs improbables !
...même s'il devrait y avoir surement une corrélations d'une manière ou d'une autre (...ça reste a démontrer)
C'est comme les fameux benchmark des moteurs de VW sensés polluer moins ...en Labo...jusqu'a ce qu'on vérifie ...en conditions réelles tout cela, n'est-ce pas ? :)
:)
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
attention, faire des opérations sur une seule variable, cela n'est pas la même chose que de faire des opérations sur un ensemble d'enregistrements!
0
gobibigo Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
oui, tout a fait, je comprend...
l utilisation d une valeur "i" ici est arbitraire, de même que la multiplication/adition/division, etc.

Dans un cas réel :
- chaque ligne ferait très certainement appel a plusieurs valeurs distinctes non-répétitives, et quelques opération etc...
- Au moins 1 chargement de données en mémoire (fichier ou db)
- + oper lecture/écriture...

. Pour le moment, c 'est une simulation d’opération de calcul mais effectivement on pourra rendre le test vraiment réaliste par la suite en joignant un/des fichier/s texte/db de plusieurs millier/millions de lignes... par la suite et en lui appliquant diverses opérations type.
...c'est envisagé :)
0