10Fermer12
Yoshi MauveLe 16/09/2006 à 22:11
mais de toute façon il doit y avoir un buffer du côté de la libc pour éviter de faire 4k appels systèmes quand on lit un fichier de 4ko ^^

bah wai, mais dans ce cas le cache se fait trasher aussi quoi que tu fasses si tu fread() trop d'un coup non? (que ca soit trop de fread() ou un fread() trop gros (EDIT: par la je veux dire, que ca soit le cache pour ta structure, ou pour le buffer interne de la libc))
mais.. oui, decouper la lecture de la structure en plusieurs freads chacun un peu plus petit que la taille du cache ca doit etre bon... (d'un autre cote, pour que ta structure tienne pas dans le cache, elle doit etre belle a voir grin, et le coup du swap des champs (sauf si c'est une structure de 10000 chars et 1 int32 triso), est sans doute plus eleve que celui d'un trash de cache (en tout cas, dans le cas de Jackosking, si j'ai bonne memoire, il n'y aucune structure dans le format bsp de Q3 qui approche, meme de loin, la taille d'un cache normal...))

EDIT: soit dit en passant, Jackosking, en fait dans le ./7 ca marche pas pour des structures, comme la structure 'constants' dans l'exemple, si le sizeof de la dite structure est == 2 ou == 4 (ou == 8), mais qu'a l'interieur il y a des variables separees dont le sizeof est != de celui de la structure..