pourquoi un pacman -Sy prend tant de temps.
4s top chrono ici en comptant le DL. Sur du ReiserFS. C'est simple et suffisant.
Par exemple, tu dois résoudre les dépendances d'un paquet. Pour cela, deux solution :
Non, trois. La troisième étant d'avoir une BDD conçue pour répondre au problème. Sans trop chercher je ferais ça avec une table deps qui a deux champs qui référencent des entrées de la table packages. Du coup, récupérer les dépendances d'un paquet ça se fait en une requête SQL pas trop complexe (un join).
Je t'invite à regarder comment on peut gérer ça élégamment avec des fichiers mappés :
Tu mélanges des trucs qui n'ont pas de rapport. Que tu mmap tes fichiers ou que tu y accèdes en seekant et en gérant ton cache manuellement ça n'a aucun rapport avec la structure et le format du fichier.
En fait, une base de donnée binaire fait-maison est la solution la plus rapide qu'il soit, car c'est adapté au problème.
Et beaucoup plus error-prone tout en ne permettant pas à d'autres programmes de lire facilement ta BDD. Je remarque d'ailleurs que ton code ne fonctionne que sur des processeurs little endian et dépend de l'alignement des champs de ta structure fait par le compilateur.
[^] # Re: Gestionnaire de paquets de Chakra
Posté par Pierre Bourdon . En réponse au journal Chakra se sépare d'Arch. Évalué à 5.
4s top chrono ici en comptant le DL. Sur du ReiserFS. C'est simple et suffisant.
Par exemple, tu dois résoudre les dépendances d'un paquet. Pour cela, deux solution :
Non, trois. La troisième étant d'avoir une BDD conçue pour répondre au problème. Sans trop chercher je ferais ça avec une table deps qui a deux champs qui référencent des entrées de la table packages. Du coup, récupérer les dépendances d'un paquet ça se fait en une requête SQL pas trop complexe (un join).
Je t'invite à regarder comment on peut gérer ça élégamment avec des fichiers mappés :
Tu mélanges des trucs qui n'ont pas de rapport. Que tu mmap tes fichiers ou que tu y accèdes en seekant et en gérant ton cache manuellement ça n'a aucun rapport avec la structure et le format du fichier.
En fait, une base de donnée binaire fait-maison est la solution la plus rapide qu'il soit, car c'est adapté au problème.
Et beaucoup plus error-prone tout en ne permettant pas à d'autres programmes de lire facilement ta BDD. Je remarque d'ailleurs que ton code ne fonctionne que sur des processeurs little endian et dépend de l'alignement des champs de ta structure fait par le compilateur.