• [^] # Re: La est la différence ...

    Posté par (site web personnel) . En réponse au journal Ils n'ont honte de rien!. Évalué à 1.

    Tu es très fort en communication, il faut bien l'avouer. après tout c'est peut être
    ton métier.

    Et aussi insomniaque que moi on dirait.

    Bon puisqu'on est la pour rigoler je propose un test
    une chose toute simple j'ouvre un fichier j'écris qq chose dedans je le ferme
    des fonctions de bases quoi

    Même machine en dual boot (XP + Ubuntu) un lenovo R60,
    donc même CPU RAM DISQUE etc... seul l'os change et le système de fichiers
    même langage le python (mais on peut tester avec d'autres langages) une petite version d'écart pour python (2.5 d'un coté 2.6 de l'autre)

    ====== TEST SOUS LINUX =======

    root@laptop:~/dvp/open_fic# python t1.py
    Debut : 14:34:12
    Creation de 100000 fichiers
    Temps : 14:34:27
    Effacement de 100000 fichiers
    Fin : 14:34:32
    

    ===> le temps 20 secondes

    root@laptop:~/dvp/open_fic# python
    Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56)
    [GCC 4.4.3] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>>
    

    ==== TEST SOUS WIN ====

    Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Intel)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> ^Z 
    E:\DVP>python t1.py
    Debut : 14:44:40
    Creation de 100000 fichiers
    Temps : 14:45:58
    Effacement de 100000 fichiers
    Fin : 14:46:42
    

    ===> le temps 2 minutes ( 6 fois plus )

    le script :

    import os
    import datetime
    t=datetime.datetime.now()
    print "Debut : ", t.strftime("%X")
    os.mkdir("test")
    n=100000
    ## creation de n fichiers
    print "Creation de %s fichiers" % n
    for x in range(1,n):
     fname = os.path.join("test","f%05d" % x)
     f = open( fname, 'w')
     f.write("01")
     f.close()
    ## On nettoie
    ## Timing
    t=datetime.datetime.now()
    print 'Temps : ',t.strftime("%X")
    print "Effacement de %s fichiers" % n
    for x in range(1,n):
     fname = os.path.join("test","f%05d" % x)
     os.remove(fname)
    os.rmdir("test")
    t=datetime.datetime.now()
    print "Fin : ", t.strftime("%X")
    

    A vérifier sous d'autres langages Java / Ruby / Perl enfin ceux qui tournent sur les 2 os je le redis : il s'agit de la même machine en dual boot 2 différences l'OS et le système de fichiers NTFS et ext3

    et encore en écrivant cette réponse je m'aperçois que je pouvais encore gommer une différence car Linux peut exécuter ce scripts sur la même partition que Windows.

    ca me rappelle le bon vieux temps de l'ordinateur individuel (avant qu'il soit totalement dépendant de M$) ou l'on testait le basic des Orics, TO7, Apple 2 ...

    Bon tu as le scripts, tu peu l'exécuter toi aussi ou le ré écrire dans un autre langage
    ou alors me fournir des explications sur comment je peu gommer cet écart quand même important 20 secondes contre 120 secondes.

    et si il y a des spectateurs avec du temps a perdre faite le test sur une machine en dual boot avec le même langage et transmettez nous vos conclusions.