qu'est-ce qui prend le plus de temps dans le chargement d'une application ?
J'ai remarqué que les binaires Linux sont environ 2x plus rapides à charger que
les versions natives (si on prend des gros bouzins comme konqueror ou firefox
par exemple). Je ne vois pas trop la raison, à part peut-être qu'en émulation
il n'y a qu'un système minimal et donc moins de choses à charger.
Donc que faut-il améliorer si on veut que les applications démarrent plus
rapidement ? Est-il possible de les mettre en cache quelquepart ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Marwan Burelle
In article <4270e19c$0$16231$, Cyrille Szymanski wrote:
Bonjour,
qu'est-ce qui prend le plus de temps dans le chargement d'une application ?
Hola ! plein de chose ;)
Ça dépend de l'application ...
Pour donner une exemple, je vais faire dans l'extreme : Java.
La JVM lorsqu'elle charge une classe fait subir une analyse à toutes les méthodes de cette classe. Il s'agit d'une forme d'interprétation abstraite qui vise à garantir l'intégrité de la pile au cours de l'exécution. C'est très bien, mais c'est aussi très lourd (cela correspond à une ou deux exécutions complètes de la méthode, avec un seul passage dans chaque boucle.)
J'ai remarqué que les binaires Linux sont environ 2x plus rapides à charger que les versions natives (si on prend des gros bouzins comme konqueror ou firefox par exemple). Je ne vois pas trop la raison, à part peut-être qu'en émulation il n'y a qu'un système minimal et donc moins de choses à charger.
Mouais ... ce qui est possible c'est que certains binaires Linux soient statiques, et par conséquent on peut gagner en terme de recherche et de chargement de lib, mais ça me parait tendancieux comme vision.
Maintenant sur du dynamique, je ne connais que les principes de base, mais peut être que certaines libs (en émulation) ont plus de chance d'être déjà chargées, peut être qu'il y en a moins et que ça influe ...
Donc que faut-il améliorer si on veut que les applications démarrent plus rapidement ? Est-il possible de les mettre en cache quelquepart ?
Je dirais que le mieux est de ne pas quitter les gros bouzins, de les laisser tourner. Sinon, il y a des histoires de pré-fetch des libs dans OpenBSD, mais je n'en sais pas plus. Il parait que cela fait une différence significative ... (Miod, Marc un commentaire ?)
-- Burelle Marwan, Equipe Bases de Donnees - LRI http://www.cduce.org ( | )
In article <4270e19c$0$16231$626a14ce@news.free.fr>, Cyrille Szymanski wrote:
Bonjour,
qu'est-ce qui prend le plus de temps dans le chargement d'une application ?
Hola ! plein de chose ;)
Ça dépend de l'application ...
Pour donner une exemple, je vais faire dans l'extreme : Java.
La JVM lorsqu'elle charge une classe fait subir une analyse à toutes
les méthodes de cette classe. Il s'agit d'une forme d'interprétation
abstraite qui vise à garantir l'intégrité de la pile au cours de
l'exécution. C'est très bien, mais c'est aussi très lourd (cela
correspond à une ou deux exécutions complètes de la méthode, avec un
seul passage dans chaque boucle.)
J'ai remarqué que les binaires Linux sont environ 2x plus rapides à
charger que les versions natives (si on prend des gros bouzins comme
konqueror ou firefox par exemple). Je ne vois pas trop la raison, à
part peut-être qu'en émulation il n'y a qu'un système minimal et
donc moins de choses à charger.
Mouais ... ce qui est possible c'est que certains binaires Linux
soient statiques, et par conséquent on peut gagner en terme de
recherche et de chargement de lib, mais ça me parait tendancieux comme
vision.
Maintenant sur du dynamique, je ne connais que les principes de base,
mais peut être que certaines libs (en émulation) ont plus de chance
d'être déjà chargées, peut être qu'il y en a moins et que ça influe
...
Donc que faut-il améliorer si on veut que les applications démarrent
plus rapidement ? Est-il possible de les mettre en cache
quelquepart ?
Je dirais que le mieux est de ne pas quitter les gros bouzins, de les
laisser tourner. Sinon, il y a des histoires de pré-fetch des libs
dans OpenBSD, mais je n'en sais pas plus. Il parait que cela fait une
différence significative ... (Miod, Marc un commentaire ?)
--
Burelle Marwan,
Equipe Bases de Donnees - LRI
http://www.cduce.org
(burelle@lri.fr | Marwan.Burelle@ens.fr)
In article <4270e19c$0$16231$, Cyrille Szymanski wrote:
Bonjour,
qu'est-ce qui prend le plus de temps dans le chargement d'une application ?
Hola ! plein de chose ;)
Ça dépend de l'application ...
Pour donner une exemple, je vais faire dans l'extreme : Java.
La JVM lorsqu'elle charge une classe fait subir une analyse à toutes les méthodes de cette classe. Il s'agit d'une forme d'interprétation abstraite qui vise à garantir l'intégrité de la pile au cours de l'exécution. C'est très bien, mais c'est aussi très lourd (cela correspond à une ou deux exécutions complètes de la méthode, avec un seul passage dans chaque boucle.)
J'ai remarqué que les binaires Linux sont environ 2x plus rapides à charger que les versions natives (si on prend des gros bouzins comme konqueror ou firefox par exemple). Je ne vois pas trop la raison, à part peut-être qu'en émulation il n'y a qu'un système minimal et donc moins de choses à charger.
Mouais ... ce qui est possible c'est que certains binaires Linux soient statiques, et par conséquent on peut gagner en terme de recherche et de chargement de lib, mais ça me parait tendancieux comme vision.
Maintenant sur du dynamique, je ne connais que les principes de base, mais peut être que certaines libs (en émulation) ont plus de chance d'être déjà chargées, peut être qu'il y en a moins et que ça influe ...
Donc que faut-il améliorer si on veut que les applications démarrent plus rapidement ? Est-il possible de les mettre en cache quelquepart ?
Je dirais que le mieux est de ne pas quitter les gros bouzins, de les laisser tourner. Sinon, il y a des histoires de pré-fetch des libs dans OpenBSD, mais je n'en sais pas plus. Il parait que cela fait une différence significative ... (Miod, Marc un commentaire ?)
-- Burelle Marwan, Equipe Bases de Donnees - LRI http://www.cduce.org ( | )
Francois Tigeot
Cyrille Szymanski wrote:
J'ai remarqué que les binaires Linux sont environ 2x plus rapides à charger que les versions natives (si on prend des gros bouzins comme konqueror ou firefox par exemple). Je ne vois pas trop la raison, à part peut-être qu'en émulation il n'y a qu'un système minimal et donc moins de choses à charger.
Je pense que dans ce cas, c'est parce que le linker dynamique de Linux est plus rapide. C'est encore plus flagrant si on compare entre un OpenOffice natif et sa version Linux.
Donc que faut-il améliorer si on veut que les applications démarrent plus rapidement ? Est-il possible de les mettre en cache quelquepart ?
Il y a une énorme discussion là dessus il y a quelque temps lorsque Free est passé à un / dynamique. Je crois que Darwin est le seul BSD à utiliser un système de "prelinking", mais je n'en sais pas plus.
Ce lien peut aider: http://kerneltrap.org/node/1698
-- Francois Tigeot
Cyrille Szymanski wrote:
J'ai remarqué que les binaires Linux sont environ 2x plus rapides à charger que
les versions natives (si on prend des gros bouzins comme konqueror ou firefox
par exemple). Je ne vois pas trop la raison, à part peut-être qu'en émulation
il n'y a qu'un système minimal et donc moins de choses à charger.
Je pense que dans ce cas, c'est parce que le linker dynamique de Linux est
plus rapide.
C'est encore plus flagrant si on compare entre un OpenOffice natif et sa
version Linux.
Donc que faut-il améliorer si on veut que les applications démarrent plus
rapidement ? Est-il possible de les mettre en cache quelquepart ?
Il y a une énorme discussion là dessus il y a quelque temps lorsque Free
est passé à un / dynamique. Je crois que Darwin est le seul BSD à utiliser
un système de "prelinking", mais je n'en sais pas plus.
Ce lien peut aider:
http://kerneltrap.org/node/1698
J'ai remarqué que les binaires Linux sont environ 2x plus rapides à charger que les versions natives (si on prend des gros bouzins comme konqueror ou firefox par exemple). Je ne vois pas trop la raison, à part peut-être qu'en émulation il n'y a qu'un système minimal et donc moins de choses à charger.
Je pense que dans ce cas, c'est parce que le linker dynamique de Linux est plus rapide. C'est encore plus flagrant si on compare entre un OpenOffice natif et sa version Linux.
Donc que faut-il améliorer si on veut que les applications démarrent plus rapidement ? Est-il possible de les mettre en cache quelquepart ?
Il y a une énorme discussion là dessus il y a quelque temps lorsque Free est passé à un / dynamique. Je crois que Darwin est le seul BSD à utiliser un système de "prelinking", mais je n'en sais pas plus.
Ce lien peut aider: http://kerneltrap.org/node/1698
-- Francois Tigeot
Eric Masson
Francois Tigeot writes:
Il y a une énorme discussion là dessus il y a quelque temps lorsque Free est passé à un / dynamique. Je crois que Darwin est le seul BSD à utiliser un système de "prelinking", mais je n'en sais pas plus.
DFly a utilisé une autre approche pour le même problème, voir le lien suivant : http://leaf.dragonflybsd.org/cgi/web-man?command=resident§ion=ANY
Éric Masson
-- la politesse veut que l'on s'ecrase lorsque l'on vous fait une remarque correct pas repondre sur un ton de maiprise. je te conseil de lire le Netiquette tu y aprendre quelleque petite chose dont tu a grand besoin -+- Blackjocker in GNU : Quand on est ton c'est pour la vie entière -+-
Francois Tigeot <ftigeot@nospam.free.fr> writes:
Il y a une énorme discussion là dessus il y a quelque temps lorsque Free
est passé à un / dynamique. Je crois que Darwin est le seul BSD à utiliser
un système de "prelinking", mais je n'en sais pas plus.
DFly a utilisé une autre approche pour le même problème, voir le lien
suivant :
http://leaf.dragonflybsd.org/cgi/web-man?command=resident§ion=ANY
Éric Masson
--
la politesse veut que l'on s'ecrase lorsque l'on vous fait une remarque
correct pas repondre sur un ton de maiprise. je te conseil de lire le
Netiquette tu y aprendre quelleque petite chose dont tu a grand besoin
-+- Blackjocker in GNU : Quand on est ton c'est pour la vie entière -+-
Il y a une énorme discussion là dessus il y a quelque temps lorsque Free est passé à un / dynamique. Je crois que Darwin est le seul BSD à utiliser un système de "prelinking", mais je n'en sais pas plus.
DFly a utilisé une autre approche pour le même problème, voir le lien suivant : http://leaf.dragonflybsd.org/cgi/web-man?command=resident§ion=ANY
Éric Masson
-- la politesse veut que l'on s'ecrase lorsque l'on vous fait une remarque correct pas repondre sur un ton de maiprise. je te conseil de lire le Netiquette tu y aprendre quelleque petite chose dont tu a grand besoin -+- Blackjocker in GNU : Quand on est ton c'est pour la vie entière -+-
espie
In article <d4r2tb$30po$, Francois Tigeot wrote:
Il y a une énorme discussion là dessus il y a quelque temps lorsque Free est passé à un / dynamique. Je crois que Darwin est le seul BSD à utiliser un système de "prelinking", mais je n'en sais pas plus.
Je sais qu'on a gagne pas mal chez OpenBSD lorsqu'on a rajoute un petit cache dans l'editeur de lien (style un facteur 3 sur le chargement de kde. Pour mozilla, je sais pas et je m'en fous, je m'en sers pratiquement jamais).
Quant au prelink, les linux recents ont un truc un peu plus subtil. Faut chercher `combreloc' dans la doc de binutils.
J'ai pas encore eu l'occasion de gratouiller et de voir precisement ce qu'il faut comme support pour etre sur que ca fonctionne... et j'ai pas fait de verifs de perfs a ce niveau recemment.
In article <d4r2tb$30po$1@biggoron.nerim.net>,
Francois Tigeot <ftigeot@nospam.free.fr> wrote:
Il y a une énorme discussion là dessus il y a quelque temps lorsque Free
est passé à un / dynamique. Je crois que Darwin est le seul BSD à utiliser
un système de "prelinking", mais je n'en sais pas plus.
Je sais qu'on a gagne pas mal chez OpenBSD lorsqu'on a rajoute un petit
cache dans l'editeur de lien (style un facteur 3 sur le chargement de kde.
Pour mozilla, je sais pas et je m'en fous, je m'en sers pratiquement
jamais).
Quant au prelink, les linux recents ont un truc un peu plus subtil.
Faut chercher `combreloc' dans la doc de binutils.
J'ai pas encore eu l'occasion de gratouiller et de voir precisement ce
qu'il faut comme support pour etre sur que ca fonctionne... et j'ai pas
fait de verifs de perfs a ce niveau recemment.
Il y a une énorme discussion là dessus il y a quelque temps lorsque Free est passé à un / dynamique. Je crois que Darwin est le seul BSD à utiliser un système de "prelinking", mais je n'en sais pas plus.
Je sais qu'on a gagne pas mal chez OpenBSD lorsqu'on a rajoute un petit cache dans l'editeur de lien (style un facteur 3 sur le chargement de kde. Pour mozilla, je sais pas et je m'en fous, je m'en sers pratiquement jamais).
Quant au prelink, les linux recents ont un truc un peu plus subtil. Faut chercher `combreloc' dans la doc de binutils.
J'ai pas encore eu l'occasion de gratouiller et de voir precisement ce qu'il faut comme support pour etre sur que ca fonctionne... et j'ai pas fait de verifs de perfs a ce niveau recemment.
Cyrille Szymanski
On 2005-04-28, Marwan Burelle wrote:
Pour donner une exemple, je vais faire dans l'extreme : Java.
La JVM lorsqu'elle charge une classe fait subir une analyse à toutes les méthodes de cette classe.
Ah oui, il y a ça aussi.
Mais dans le fond je considère que ces étapes font partie de l'initialisation de l'application, donc à part reprogrammer l'appli en question je ne vois pas trop comment on peut améliorer des choses.
Mouais ... ce qui est possible c'est que certains binaires Linux soient statiques, et par conséquent on peut gagner en terme de recherche et de chargement de lib, mais ça me parait tendancieux comme vision.
Maintenant sur du dynamique, je ne connais que les principes de base, mais peut être que certaines libs (en émulation) ont plus de chance d'être déjà chargées, peut être qu'il y en a moins et que ça influe ...
Je ne suis apparemment pas le seul à avoir remarqué ça.
En fait c'est dommage, j'utilise presque exclusivement firefox-gtk2-linux à la place de son accolyte natif car il démarre 2x plus vite.
Merci pour la réponse. -- Cyrille Szymanski
On 2005-04-28, Marwan Burelle <burelle@lri.fr> wrote:
Pour donner une exemple, je vais faire dans l'extreme : Java.
La JVM lorsqu'elle charge une classe fait subir une analyse à toutes
les méthodes de cette classe.
Ah oui, il y a ça aussi.
Mais dans le fond je considère que ces étapes font partie de l'initialisation
de l'application, donc à part reprogrammer l'appli en question je ne vois pas
trop comment on peut améliorer des choses.
Mouais ... ce qui est possible c'est que certains binaires Linux
soient statiques, et par conséquent on peut gagner en terme de
recherche et de chargement de lib, mais ça me parait tendancieux comme
vision.
Maintenant sur du dynamique, je ne connais que les principes de base,
mais peut être que certaines libs (en émulation) ont plus de chance
d'être déjà chargées, peut être qu'il y en a moins et que ça influe
...
Je ne suis apparemment pas le seul à avoir remarqué ça.
En fait c'est dommage, j'utilise presque exclusivement firefox-gtk2-linux à la
place de son accolyte natif car il démarre 2x plus vite.
Pour donner une exemple, je vais faire dans l'extreme : Java.
La JVM lorsqu'elle charge une classe fait subir une analyse à toutes les méthodes de cette classe.
Ah oui, il y a ça aussi.
Mais dans le fond je considère que ces étapes font partie de l'initialisation de l'application, donc à part reprogrammer l'appli en question je ne vois pas trop comment on peut améliorer des choses.
Mouais ... ce qui est possible c'est que certains binaires Linux soient statiques, et par conséquent on peut gagner en terme de recherche et de chargement de lib, mais ça me parait tendancieux comme vision.
Maintenant sur du dynamique, je ne connais que les principes de base, mais peut être que certaines libs (en émulation) ont plus de chance d'être déjà chargées, peut être qu'il y en a moins et que ça influe ...
Je ne suis apparemment pas le seul à avoir remarqué ça.
En fait c'est dommage, j'utilise presque exclusivement firefox-gtk2-linux à la place de son accolyte natif car il démarre 2x plus vite.
Merci pour la réponse. -- Cyrille Szymanski
Cyrille Szymanski
On 2005-04-28, Eric Masson wrote:
Francois Tigeot writes:
Il y a une énorme discussion là dessus il y a quelque temps lorsque Free est passé à un / dynamique. Je crois que Darwin est le seul BSD à utiliser un système de "prelinking", mais je n'en sais pas plus.
DFly a utilisé une autre approche pour le même problème, voir le lien suivant : http://leaf.dragonflybsd.org/cgi/web-man?command=resident§ion=ANY
J'aimerais bien avoir un bidule pareil dans NetBSD moi.
Mais je viens de parler avec un Darwinien (OSXien plus exactement) et visiblement le "prebinding" apportait réellement une amélioration par le passé, mais elle est beaucoup moins visible depuis qu'ils ont paufiné leur chargeur dynamique. Donc resident c'est chouette pour améliorer les performances sans se casser la tête, mais c'est peut-être pas faire les choses bien.
Merci pour le lien. -- Cyrille Szymanski
On 2005-04-28, Eric Masson <emss@free.fr> wrote:
Francois Tigeot <ftigeot@nospam.free.fr> writes:
Il y a une énorme discussion là dessus il y a quelque temps lorsque Free
est passé à un / dynamique. Je crois que Darwin est le seul BSD à utiliser
un système de "prelinking", mais je n'en sais pas plus.
DFly a utilisé une autre approche pour le même problème, voir le lien
suivant :
http://leaf.dragonflybsd.org/cgi/web-man?command=resident§ion=ANY
J'aimerais bien avoir un bidule pareil dans NetBSD moi.
Mais je viens de parler avec un Darwinien (OSXien plus exactement) et
visiblement le "prebinding" apportait réellement une amélioration par le passé,
mais elle est beaucoup moins visible depuis qu'ils ont paufiné leur chargeur
dynamique. Donc resident c'est chouette pour améliorer les performances sans se
casser la tête, mais c'est peut-être pas faire les choses bien.
Il y a une énorme discussion là dessus il y a quelque temps lorsque Free est passé à un / dynamique. Je crois que Darwin est le seul BSD à utiliser un système de "prelinking", mais je n'en sais pas plus.
DFly a utilisé une autre approche pour le même problème, voir le lien suivant : http://leaf.dragonflybsd.org/cgi/web-man?command=resident§ion=ANY
J'aimerais bien avoir un bidule pareil dans NetBSD moi.
Mais je viens de parler avec un Darwinien (OSXien plus exactement) et visiblement le "prebinding" apportait réellement une amélioration par le passé, mais elle est beaucoup moins visible depuis qu'ils ont paufiné leur chargeur dynamique. Donc resident c'est chouette pour améliorer les performances sans se casser la tête, mais c'est peut-être pas faire les choses bien.
Merci pour le lien. -- Cyrille Szymanski
espie
In article , Eric Masson wrote:
DFly a utilisé une autre approche pour le même problème, voir le lien suivant : http://leaf.dragonflybsd.org/cgi/web-man?command=resident§ion=ANY
Ouarf, Matt Dillon est toujours en train d'essayer de ressusciter AmigaOS, visiblement.
In article <86y8b2g8bi.fsf@srvbsdnanssv.interne.kisoft-services.com>,
Eric Masson <emss@free.fr> wrote:
DFly a utilisé une autre approche pour le même problème, voir le lien
suivant :
http://leaf.dragonflybsd.org/cgi/web-man?command=resident§ion=ANY
Ouarf, Matt Dillon est toujours en train d'essayer de ressusciter AmigaOS,
visiblement.
DFly a utilisé une autre approche pour le même problème, voir le lien suivant : http://leaf.dragonflybsd.org/cgi/web-man?command=resident§ion=ANY
Ouarf, Matt Dillon est toujours en train d'essayer de ressusciter AmigaOS, visiblement.
Eric Masson
(Marc Espie) writes:
Ouarf, Matt Dillon est toujours en train d'essayer de ressusciter AmigaOS, visiblement.
Il ne s'en cache pas :) Enfin, il expérimente et il en sortira probablement des nouveautés intéressantes, probablement parce que son approche est moins académique.
Éric Masson
-- Je veux créer une troupe de danse érotique! Si vous ètes près à vivre des émotions fortes... si non, la vie continue et... Signature: Un Gros Garcon! -+- CL in GNU - Enlevez le «Gar» de ma signature pour me répondre -+-
espie@tetto.home (Marc Espie) writes:
Ouarf, Matt Dillon est toujours en train d'essayer de ressusciter
AmigaOS, visiblement.
Il ne s'en cache pas :) Enfin, il expérimente et il en sortira
probablement des nouveautés intéressantes, probablement parce que son
approche est moins académique.
Éric Masson
--
Je veux créer une troupe de danse érotique! Si vous ètes près à vivre
des émotions fortes... si non, la vie continue et...
Signature: Un Gros Garcon!
-+- CL in GNU - Enlevez le «Gar» de ma signature pour me répondre -+-
Ouarf, Matt Dillon est toujours en train d'essayer de ressusciter AmigaOS, visiblement.
Il ne s'en cache pas :) Enfin, il expérimente et il en sortira probablement des nouveautés intéressantes, probablement parce que son approche est moins académique.
Éric Masson
-- Je veux créer une troupe de danse érotique! Si vous ètes près à vivre des émotions fortes... si non, la vie continue et... Signature: Un Gros Garcon! -+- CL in GNU - Enlevez le «Gar» de ma signature pour me répondre -+-