Poster une réponse à un sujet: Les threads, c'est mal?
Attention, ce sujet est un sujet ancien (6773 jours sans réponse)
antp
Pour éviter la fragmentation de ton disque, j'alloue un stream de la taille direct du fichier, 2GB. La création du fichier va prendre plusieurs secondes.
Seulement en FAT32.
En NTFS c'est immédiat normalement (enfin, ça l'était quand j'ai testé).
Sinon pour l'histoire de la fragmentation, même si avec d'autres FS ça fragmente moins il y a des cas où ça fragmente.
Si tu remplis ton fichier, à 100 Mo t'arrives à la fin de la zone libre, tu continues ailleurs. Il va pas bouger les 100 Mo pour passer à 101 Mo contigus. Alors que si dès le début il sait que ça va faire 2 Go il peut attaquer une zone libre de plus de 2 Go.
philfr
Ben, oui, j'allais dire....
Google est un software pour monsieur tout le monde aussi, mais c'est pas développé sous Windows...
Google est un software pour monsieur tout le monde aussi, mais c'est pas développé sous Windows...
zion
Altar> Ca m'arrive plus vraiment, le seul soft pour monsieur tout le monde que je faisais, c'est fini. Mais il m'arrive de devoir faire des progs pour des clients sous Windows en effet
Altar
Et Windows, c'est important pour toi ?
Et quand on code des softwares pour monsieur tout le monde, je dirais qu'il est risqué de se priver de 95% du marché. Enfin ce n'est que mon avis
zion
Pour le moment oui, vu que Kylix est assez mauvais comme environnement de dev sous Linux, il n'arrive pas à la cheville de Delphi 7 (y a pleins de soucis dans la gestion des raccourcis). (Puis y a des petits détails et logiciels qui me manqueraient trop )
philfr
Et Windows, c'est important pour toi ?
zion
Oui, mais tu vois... les threads c'est important sous Windows
philfr
Bah, moi j'utilise un vrai OS, et la fragmentation je ne connais pas
Un fichier chez moi, c'est un truc que j'ouvre, dans lequel je peux lire et écrire, que je ferme, et que je peux rouvrir plus tard pour faire la même chose.
Comme mes connexions TCP pour lesquelles je n'ai pas à me soucier des timeouts ou des MTU...
Un fichier chez moi, c'est un truc que j'ouvre, dans lequel je peux lire et écrire, que je ferme, et que je peux rouvrir plus tard pour faire la même chose.
Comme mes connexions TCP pour lesquelles je n'ai pas à me soucier des timeouts ou des MTU...
zion
Si je ne connais pas la taille tant pis, j'augmente la taille du fichier au fur et à mesure, mais ca augmente largement la fragmentation au niveau du disque.
Ce serait en effet sympa que l'OS se démerde de ce côté, mais si il faut 10s pour créer le fichier et que la ligne suivante tu veux écrire dans le fichier, t'es baisé
A moins évidemment que l'écriture dans le fichier soit bloquée par l'OS jusqu'à ce qu'il soit réellement crée, mais alors il a intérêt a avoir un sacré buffer si tu commences à écrire comme un sauvage...
Ce serait en effet sympa que l'OS se démerde de ce côté, mais si il faut 10s pour créer le fichier et que la ligne suivante tu veux écrire dans le fichier, t'es baisé
A moins évidemment que l'écriture dans le fichier soit bloquée par l'OS jusqu'à ce qu'il soit réellement crée, mais alors il a intérêt a avoir un sacré buffer si tu commences à écrire comme un sauvage...
philfr
Dans les frameworks asynchrones, aucun API n'est bloquant, et tout ceux qui renvoient un résultat le font via un callback ou un event.
Quant à ton problème de préallocation de disque et de fragmentation, c'est dommage que tu doives t'occuper de ce genre de choses dans une application non ? Pour moi c'est le rôle de l'OS de faire le concierge .
Quid si ton fichier est stocké sur le réseau ? Ou si tu ne sais pas quelle taille il aura avant de le charger ?
Quant à ton problème de préallocation de disque et de fragmentation, c'est dommage que tu doives t'occuper de ce genre de choses dans une application non ? Pour moi c'est le rôle de l'OS de faire le concierge .
Quid si ton fichier est stocké sur le réseau ? Ou si tu ne sais pas quelle taille il aura avant de le charger ?