|
|
|
#26 |
|
Messages: n/a
Hébergeur: |
jean-michel bain-cornu a écrit :
>>>> Peut-être reprendre le code, et l'améliorer (taille de buffers)... >>> >>> Pas sûr que ça change grand chose. Il y a l'OS derrière qui a ses >>> propres buffers... >> >> Oui, mais entre lire et écrire des blocs de 1K et des blocs de 1M, je >> ne suis pas sûr que l'OS puisse faire les mêmes optimisations sur la >> gestion de ses buffers. >> >> En plus, en utilisant directement les fonctions bas niveau type >> os.open(), on peut spécifier certaines options, du genre O_NONBLOCK / >> O_NDELAY... >> >> Bref, faut tester. >> > Ce n'est pas une mauvaise idée. Sais-tu si la compil de python est > facile sous linux ? Je ferai quelques tests dans la semaine, et si ça > donne quelque chose, je mettrai un post. Pourquoi veux-tu recompiler ? os.open() et les options indiquées sont dispos en standard. (note au cas où: après il faut utiliser les fonctions de lecture/écriture du module os, pas les méthodes sur les fichiers!) |
|
|
|
#27 |
|
Messages: n/a
Hébergeur: |
jean-michel bain-cornu a écrit :
>>>> Peut-être reprendre le code, et l'améliorer (taille de buffers)... >>> >>> Pas sûr que ça change grand chose. Il y a l'OS derrière qui a ses >>> propres buffers... >> >> Oui, mais entre lire et écrire des blocs de 1K et des blocs de 1M, je >> ne suis pas sûr que l'OS puisse faire les mêmes optimisations sur la >> gestion de ses buffers. >> >> En plus, en utilisant directement les fonctions bas niveau type >> os.open(), on peut spécifier certaines options, du genre O_NONBLOCK / >> O_NDELAY... >> >> Bref, faut tester. >> > Ce n'est pas une mauvaise idée. Sais-tu si la compil de python est > facile sous linux ? Je ferai quelques tests dans la semaine, et si ça > donne quelque chose, je mettrai un post. Pourquoi veux-tu recompiler ? os.open() et les options indiquées sont dispos en standard. (note au cas où: après il faut utiliser les fonctions de lecture/écriture du module os, pas les méthodes sur les fichiers!) |
|
|
|
#28 |
|
Messages: n/a
Hébergeur: |
jean-michel bain-cornu <nospam@nospam.fr> a écrit :
>> Pourquoi en serait-il autrement ? > La question était idiote, il est vrai ; mais sait-on jamais... Mais non, mais non. >> Perso, je le compile comme ça : >> ./configure --enable-shared && make && make install. >> Mes 2 cts. >> > Tu as compté la csg ? Oui :-) -- http://scipy.org/FredericPetit |
|
|
|
#29 |
|
Messages: n/a
Hébergeur: |
jean-michel bain-cornu <nospam@nospam.fr> a écrit :
>> Pourquoi en serait-il autrement ? > La question était idiote, il est vrai ; mais sait-on jamais... Mais non, mais non. >> Perso, je le compile comme ça : >> ./configure --enable-shared && make && make install. >> Mes 2 cts. >> > Tu as compté la csg ? Oui :-) -- http://scipy.org/FredericPetit |
|
|
|
#30 |
|
Messages: n/a
Hébergeur: |
>>> En plus, en utilisant directement les fonctions bas niveau type
>>> os.open(), on peut spécifier certaines options, du genre O_NONBLOCK / >>> O_NDELAY... >>> >>> Bref, faut tester. >>> >> Ce n'est pas une mauvaise idée. Sais-tu si la compil de python est >> facile sous linux ? Je ferai quelques tests dans la semaine, et si ça >> donne quelque chose, je mettrai un post. > > Pourquoi veux-tu recompiler ? Pas examiné assez bien les post. J'avais en tête une intervention sur les sources C sans penser qu'une partie plus qu'appréciable est en python lui-même. > > os.open() et les options indiquées sont dispos en standard. > > (note au cas où: après il faut utiliser les fonctions de > lecture/écriture du module os, pas les méthodes sur les fichiers!) > J'ai trouvé sans pb la fonction copyfile(src, dst) dans shutil.py, qui fait deux open avec 'rb' et 'wb', mais quid de l'open lui-même ? Et je ne vois pas non plus ces fonctions de lecture/écriture du module os... |
|
|
|
#31 |
|
Messages: n/a
Hébergeur: |
>>> En plus, en utilisant directement les fonctions bas niveau type
>>> os.open(), on peut spécifier certaines options, du genre O_NONBLOCK / >>> O_NDELAY... >>> >>> Bref, faut tester. >>> >> Ce n'est pas une mauvaise idée. Sais-tu si la compil de python est >> facile sous linux ? Je ferai quelques tests dans la semaine, et si ça >> donne quelque chose, je mettrai un post. > > Pourquoi veux-tu recompiler ? Pas examiné assez bien les post. J'avais en tête une intervention sur les sources C sans penser qu'une partie plus qu'appréciable est en python lui-même. > > os.open() et les options indiquées sont dispos en standard. > > (note au cas où: après il faut utiliser les fonctions de > lecture/écriture du module os, pas les méthodes sur les fichiers!) > J'ai trouvé sans pb la fonction copyfile(src, dst) dans shutil.py, qui fait deux open avec 'rb' et 'wb', mais quid de l'open lui-même ? Et je ne vois pas non plus ces fonctions de lecture/écriture du module os... |
|
|
|
#32 |
|
Messages: n/a
Hébergeur: |
jean-michel bain-cornu a écrit :
> J'ai trouvé sans pb la fonction copyfile(src, dst) dans shutil.py, qui > fait deux open avec 'rb' et 'wb', mais quid de l'open lui-même ? Et je > ne vois pas non plus ces fonctions de lecture/écriture du module os... Elles sont directement dans l'espace de noms du module os: Cf http://docs.python.org/lib/os-fd-ops.html os.open(file, flags[, mode]) os.close(fd) os.write(fd, str) os.read(fd, n) Et les options de flag pour open sont aussi dans os. Attention: pas de import * sur os, sinon tu écrase le open builtin par le open d'os, et ils ont des valeurs de retour différentes (os.open() retourne un int file descriptor). |
|
|
|
#33 |
|
Messages: n/a
Hébergeur: |
jean-michel bain-cornu a écrit :
> J'ai trouvé sans pb la fonction copyfile(src, dst) dans shutil.py, qui > fait deux open avec 'rb' et 'wb', mais quid de l'open lui-même ? Et je > ne vois pas non plus ces fonctions de lecture/écriture du module os... Elles sont directement dans l'espace de noms du module os: Cf http://docs.python.org/lib/os-fd-ops.html os.open(file, flags[, mode]) os.close(fd) os.write(fd, str) os.read(fd, n) Et les options de flag pour open sont aussi dans os. Attention: pas de import * sur os, sinon tu écrase le open builtin par le open d'os, et ils ont des valeurs de retour différentes (os.open() retourne un int file descriptor). |
|
![]() |
| Outils de la discussion | |
|
|