[Xastir-Dev] Surprise awaiting you in CVS...

Gerry Creager N5JXS gerry.creager at tamu.edu
Sat Aug 9 08:33:34 EDT 2003


Nice fix!

Jerry Chamberlin wrote:
> OOOOOOOOOOOOOO
> Damn fast on my Pentium 233
> 
> Some one deserves a "Faster than a turtle" medal
> 
> On Fri, 8 Aug 2003, Curt Mills wrote:
> 
> 
>>Well, I couldn't get "gprof" to function properly, what with all of
>>our fork() and pthread_create() calls (yea, you were right Ken!).
>>It wanted to show me startup and that was it.
>>
>>I did however manage to get a version of "oprofile" running, which
>>allows me to profile Xastir nicely (and anything else on the system,
>>including the kernel!).
>>
>>That done, I figured out that we were spending 97%+ of Xastir's time
>>in the search_station_name() function.  We were doing a linear
>>search through a linked list by name.  When we get 10,000 stations
>>or more in there, things slow down.
>>
>>I've gone through two iterations of changes to fix this.  The first
>>involved creating an array of length 128 that was a pointer into the
>>station list based on the first character of the callsign.  Once I
>>had that working, tweaking it into an array of 16384 (14 bits) based
>>on the lower 7 bits of the callsign's first two characters was
>>pretty easy.
>>
>>The end result is that we now use a hash table lookup for callsigns,
>>and my Xastir here is hanging around 0.0% CPU while on a full
>>firenet feed plus a filtered firenet feed (2 feeds total).  We're
>>doing a direct jump into the linked list based on the first two
>>callsign chars, then doing a linear search from there.  Much faster!
>>
>>The heavy hitters _now_ within the Xastir program according to
>>oprofile are:
>>
>>
>>0806b060 58       0.882801    decode_ax25_line
>>080c5640 66       1.00457     index_retrieve
>>08059730 67       1.01979     display_file
>>08069a10 67       1.01979     decode_info_field
>>080e3940 69       1.05023     valid_path
>>08066e90 75       1.14155     packet_data_add
>>0804fa00 79       1.20244     normal_title
>>080e4cc0 84       1.27854     begin_critical_section
>>08050040 123      1.87215     alert_match
>>080cf2d0 127      1.93303     draw_shapefile_map
>>080773f0 128      1.94825     channel_data
>>0807deb0 131      1.99391     port_write
>>08056d00 153      2.32877     mscan_file
>>08071120 154      2.34399     draw_symbol
>>080d9c20 155      2.35921     check_and_transmit_messages
>>080a6df0 177      2.69406     UpdateTime
>>08090640 179      2.72451     langcode
>>08057c40 193      2.9376      display_station
>>080c17d0 199      3.02892     convert_to_xastir_coordinates
>>08064400 201      3.05936     data_add
>>08070e10 272      4.14003     symbol
>>0807d160 424      6.45358     port_read
>>08061870 845      12.8615     search_station_name
>>08061800 1101     16.758      station_shortcuts_update_function
>>
>>
>>The third column is percent (out of Xastir's 100%, not the CPU's
>>100%).
>>
>>Before I started, search_station_name was at the bottom of the list
>>at 97% or higher.  We were spinning our wheels trying to find the
>>stations to update/display.
>>
>>Please note that the codebase might be unstable for a bit while we
>>work out the bugs in the new scheme, but check out your "top"
>>listing for a feel-good while we're doing it!
>>
>>Hopefully the new stuff will appear on the anon CVS server tomorrow.
>>
>>-- 
>>Curt Mills, WE7U                    hacker_NO_SPAM_ at tc.fluke.com
>>Senior Methods Engineer/SysAdmin
>>"Lotto:    A tax on people who are bad at math!"
>>"Windows:  Microsoft's tax on computer illiterates!" -- WE7U
>>"The world DOES revolve around me:  I picked the coordinate system!"
>>
>>_______________________________________________
>>Xastir-dev mailing list
>>Xastir-dev at xastir.org
>>https://krypton.hscs.virginia.edu/mailman/listinfo/xastir-dev
>>
> 
> 
> The Net Lab year 2000 and beyond Internet Education is Science
> http://www.netlab.org
> WA0JRJ - Jerry
> used to be ICQ 6408731
> used to be AIM PappyJerry
> 
> _______________________________________________
> Xastir-dev mailing list
> Xastir-dev at xastir.org
> https://krypton.hscs.virginia.edu/mailman/listinfo/xastir-dev

-- 
Gerry Creager -- gerry.creager at tamu.edu
Network Engineering -- AATLT, Texas A&M University	
Cell: 979.229.5301 Office: 979.458.4020 FAX: 979.847.8578
Page: 979.228.0173
Office: 903A Eller Bldg, TAMU, College Station, TX 77843



More information about the Xastir-dev mailing list