annotate src/protocols/zephyr/Makefile.am @ 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 2cc05a9e944d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2086
424a40f12a6c [gaim-migrate @ 2096]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1 pkgdir = $(libdir)/gaim
424a40f12a6c [gaim-migrate @ 2096]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2
4202
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
3 ZEPHYRSOURCES = \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
4 ZAsyncLocate.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
5 ZCkAuth.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
6 ZCkIfNot.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
7 ZClosePort.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
8 ZCmpUID.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
9 ZCmpUIDP.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
10 ZFlsLocs.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
11 ZFlsSubs.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
12 ZFmtAuth.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
13 ZFmtList.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
14 ZFmtNotice.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
15 ZFmtRaw.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
16 ZFmtRawLst.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
17 ZFmtSmRLst.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
18 ZFmtSmRaw.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
19 ZFreeNot.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
20 ZGetLocs.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
21 ZGetSender.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
22 ZGetSubs.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
23 ZGetWGPort.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
24 ZIfNotice.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
25 ZInit.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
26 ZLocations.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
27 ZMakeAscii.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
28 ZMkAuth.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
29 ZNewLocU.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
30 ZOpenPort.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
31 ZParseNot.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
32 ZPeekIfNot.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
33 ZPeekNot.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
34 ZPeekPkt.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
35 ZPending.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
36 ZReadAscii.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
37 ZRecvNot.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
38 ZRecvPkt.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
39 ZRetSubs.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
40 ZSendList.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
41 ZSendNot.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
42 ZSendPkt.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
43 ZSendRLst.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
44 ZSendRaw.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
45 ZSetDest.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
46 ZSetFD.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
47 ZSetSrv.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
48 ZSubs.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
49 ZVariables.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
50 ZWait4Not.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
51 ZhmStat.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
52 Zinternal.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
53 com_err.h \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
54 error_message.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
55 error_table.h \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
56 et_name.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
57 init_et.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
58 internal.h \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
59 mit-copyright.h \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
60 mit-sipb-copyright.h \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
61 sysdep.h \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
62 zephyr.h \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
63 zephyr_err.c \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
64 zephyr_err.h \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
65 \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
66 zephyr.c
2086
424a40f12a6c [gaim-migrate @ 2096]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
67
8378
2b68c423357e [gaim-migrate @ 9105]
Luke Schierer <lschiere@pidgin.im>
parents: 8082
diff changeset
68 ZEPHYRSOURCESEXT = zephyr.c
2b68c423357e [gaim-migrate @ 9105]
Luke Schierer <lschiere@pidgin.im>
parents: 8082
diff changeset
69
4202
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
70 AM_CFLAGS = $(st)
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
71
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
72 ZEPHYRLIBS = $(KRB4_LDFLAGS) $(KRB4_LIBS)
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
73
8378
2b68c423357e [gaim-migrate @ 9105]
Luke Schierer <lschiere@pidgin.im>
parents: 8082
diff changeset
74 ZEPHYRLIBSEXT = $(ZEPHYR_LDFLAGS) $(ZEPHYR_LIBS)
2b68c423357e [gaim-migrate @ 9105]
Luke Schierer <lschiere@pidgin.im>
parents: 8082
diff changeset
75
10889
2cc05a9e944d [gaim-migrate @ 12597]
Stu Tomlinson <stu@nosnilmot.com>
parents: 8378
diff changeset
76 libzephyr_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS)
2086
424a40f12a6c [gaim-migrate @ 2096]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
77
424a40f12a6c [gaim-migrate @ 2096]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
78 if STATIC_ZEPHYR
424a40f12a6c [gaim-migrate @ 2096]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
79
8082
6b1ecf40f3ba [gaim-migrate @ 8781]
Nathan Walp <nwalp@pidgin.im>
parents: 6666
diff changeset
80 st = -DGAIM_STATIC_PRPL -Dlint
2086
424a40f12a6c [gaim-migrate @ 2096]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
81 noinst_LIBRARIES = libzephyr.a
4202
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
82 libzephyr_a_SOURCES = $(ZEPHYRSOURCES)
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
83 libzephyr_a_CFLAGS = $(AM_CFLAGS)
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
84 libzephyr_a_LIBADD = $(ZEPHYRLIBS)
3411
5df423e0bca8 [gaim-migrate @ 3430]
Christian Hammond <chipx86@chipx86.com>
parents: 2894
diff changeset
85
2086
424a40f12a6c [gaim-migrate @ 2096]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
86 else
424a40f12a6c [gaim-migrate @ 2096]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
87
4298
cddb50734169 [gaim-migrate @ 4552]
Sean Egan <seanegan@gmail.com>
parents: 4202
diff changeset
88 st = -Dlint
2086
424a40f12a6c [gaim-migrate @ 2096]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
89 pkg_LTLIBRARIES = libzephyr.la
8378
2b68c423357e [gaim-migrate @ 9105]
Luke Schierer <lschiere@pidgin.im>
parents: 8082
diff changeset
90
2b68c423357e [gaim-migrate @ 9105]
Luke Schierer <lschiere@pidgin.im>
parents: 8082
diff changeset
91 if EXTERNAL_LIBZEPHYR
2b68c423357e [gaim-migrate @ 9105]
Luke Schierer <lschiere@pidgin.im>
parents: 8082
diff changeset
92 libzephyr_la_SOURCES = $(ZEPHYRSOURCESEXT)
2b68c423357e [gaim-migrate @ 9105]
Luke Schierer <lschiere@pidgin.im>
parents: 8082
diff changeset
93 libzephyr_la_LIBADD = $(ZEPHYRLIBSEXT)
2b68c423357e [gaim-migrate @ 9105]
Luke Schierer <lschiere@pidgin.im>
parents: 8082
diff changeset
94 else
4202
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
95 libzephyr_la_SOURCES = $(ZEPHYRSOURCES)
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
96 libzephyr_la_LIBADD = $(ZEPHYRLIBS)
8378
2b68c423357e [gaim-migrate @ 9105]
Luke Schierer <lschiere@pidgin.im>
parents: 8082
diff changeset
97 endif
2b68c423357e [gaim-migrate @ 9105]
Luke Schierer <lschiere@pidgin.im>
parents: 8082
diff changeset
98
2086
424a40f12a6c [gaim-migrate @ 2096]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
99
424a40f12a6c [gaim-migrate @ 2096]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
100 endif
4202
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
101
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
102 AM_CPPFLAGS = \
6666
3d45ef7d3231 [gaim-migrate @ 7191]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
103 -I$(top_srcdir) \
4202
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
104 -I$(top_srcdir)/src \
6360
2e23ccbccdec [gaim-migrate @ 6864]
Christian Hammond <chipx86@chipx86.com>
parents: 4298
diff changeset
105 -I$(top_srcdir)/src/protocols \
4202
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
106 -DCONFDIR=\"$(confdir)\" \
6371
8f94cce8faa5 [gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents: 6360
diff changeset
107 $(GLIB_CFLAGS) \
4202
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
108 $(KRB4_CFLAGS) \
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 3411
diff changeset
109 $(DEBUG_CFLAGS)