view gaim.desktop @ 12233:02833a0ae716

[gaim-migrate @ 14535] SF Patch #1367116 from Michael Carlson "In profiling gaim, I noticed that on simply starting CVS gaim, xmlnode_insert_child is using up by far the most CPU time. After some testing, I realized the reason why: xmlnode_insert_child is called some 18,000 times on startup, and it is inserting the child at the end of the list each time, simply by traversing through the entire linked list. Sometimes this list can have as many as 800 elements. This patch adds a variable to the _xmlnode struct, lastchild, which simply keeps track of the last node in the list of children. This is then used by xmlnode_insert_child to insert at the end of the list, instead of traversing through the whole list each time. The two relevant functions in xmlnode.c that need to be updated to keep track of this function appropriately have been updated. Running 3 times with and without the change, the results from oprofile say it all. Here are the measured number of clock cycles / % of total clock cycles / function used to simply start and close gaim before the change: 204 60.7143 xmlnode_insert_child 210 61.4035 xmlnode_insert_child 230 61.8280 xmlnode_insert_child And after (note that one time no clock cycles were caught at all) 3 2.5862 xmlnode_insert_child 3 2.5641 xmlnode_insert_child This affects other areas of the program than just starting up, but this seems to be the most noticeable place." Speed is good. As I was verifying this patch, I added some g_return_val_if_fail() checks. committer: Tailor Script <tailor@pidgin.im>
author Richard Laager <rlaager@wiktel.com>
date Sun, 27 Nov 2005 03:42:39 +0000
parents 391acec18e46
children 5adc0c9da9f3
line wrap: on
line source

[Desktop Entry]
Encoding=UTF-8
Categories=Application;Network;
Exec=gaim
Icon=gaim.png
StartupNotify=true
Terminal=false
Type=Application

Name=Gaim Internet Messenger
Name[ca]=Missatger d'Internet Gaim
Name[cs]=Gaim Internet Messenger
Name[da]=Gaim - internet beskeder
Name[de]=Gaim Internet Messenger
Name[es]=Gaim - cliente de mensajería de Internet
Name[fr]=Gaim Messagerie Internet
Name[hu]=Gaim azonnali üzenetküldő
Name[it]=Gaim Internet Messenger
Name[ja]=Gaim インターネット・メッセンジャー
Name[ko]=게임 메신저
Name[nb]=Gaim lynmeldingsklient
Name[nl]=Gaim - Expresberichten
Name[pl]=Komunikator Internetowy Gaim
Name[pt_BR]=Mensageiro via Internet Gaim
Name[pt]=Mensageiro Internet Gaim
Name[ro]=Mesagerul Gaim
Name[ru]=Gaim - клиент обмена мгновенными сообщениями
Name[sl]=Gaim - spletni sel
Name[sq]=Lajmësjellësi Internet Gaim
Name[sv]=Gaim Internet Messenger
Name[zh_CN]=Gaim 互联网通讯程序
Name[zh_TW]=Gaim 網路即時通

GenericName=Internet Messenger
GenericName[ca]=Missatger d'Internet
GenericName[cs]=Internet Messenger
GenericName[da]=Internet beskeder
GenericName[de]=Internet Messenger
GenericName[es]=Cliente de mensajería de Internet
GenericName[fr]=Messagerie internet
GenericName[hu]=Azonnali üzenetküldő
GenericName[it]=Internet Messenger
GenericName[ja]=インターネット・メッセンジャー
GenericName[ko]=메신저
GenericName[nb]=Lynmeldingsklient
GenericName[nl]=Expresberichten
GenericName[pl]=Komunikator Internetowy
GenericName[pt_BR]=Mensageiro via Internet
GenericName[pt]=Mensageiro Internet
GenericName[ro]=Client de mesagerie
GenericName[ru]=Клиент обмена мгновенными сообщениями
GenericName[sl]=Spletni sel
GenericName[sq]=Lajmësjellës Internet
GenericName[sv]=Meddelandeklient
GenericName[zh_CN]=互联网通讯程序
GenericName[zh_TW]=網路即時通

Comment=Send instant messages over multiple protocols
Comment[ca]=Envieu missatges instantanis en múltiples protocols
Comment[cs]=Posílat instant message různými protokoly
Comment[da]=Send beskeder over flere protokoller
Comment[de]=Multi-Protokoll Instant Messenger Client
Comment[es]=Cliente de mensajería instantánea multiprotocolo
Comment[fr]=Envoie des messages instantanés en utilisant divers protocoles
Comment[hu]=Azonnali üzenetküldés többféle protokoll használatával
Comment[it]=Client multiprotocollo per messaggi immediati
Comment[ja]=複数のプロトコルを介してインスタント・メッセージを送信します
Comment[ko]=다중 프로토콜 메신저
Comment[nb]=Send lynmeldinger over flere protokoller
Comment[nl]=Multi-protocol programma voor expresberichten
Comment[pl]=Komunikator internetowy obsługujący kilka protokołów
Comment[pt_BR]=Mande mensagens instantâneas por múltiplos protocolos
Comment[pt]=Envie mensagens instantâneas sobre vários protocolos
Comment[ro]=Trimiteţi mesaje instant în orice reţea
Comment[ru]=Обмен мгновенными сообщениями с использованием множества протоколов
Comment[sl]=Pošiljajte neposredna sporočila prek različnih protokolovs
Comment[sq]=Dërgoni mesazhe të atypëratyshëm protokollesh të ndryshëm
Comment[sv]=Sänder snabbmeddelande över många protokoll
Comment[zh_CN]=通过多种协议发送即时消息
Comment[zh_TW]=透過多種通訊協定發送即時訊息