Hey I forgot to tell you yesterday that while moving the libs to GitHub, I had to rename the "smd_crystal&oscillator" one since GitHub doesn't allow the '&' character to be used. I called it "smd_crystal_and_oscillator", and thus it will fail with any fp-lib-table based on the one I sent earlier, which was tailored to the converted local files.
On Mon, Sep 30, 2013 at 11:19 PM, Dick Hollenbeck <[email protected]> wrote: > > On Sep 30, 2013 6:48 PM, "Wayne Stambaugh" <[email protected]> wrote: > > > > On 9/30/2013 5:39 PM, Dick Hollenbeck wrote: > > > The GITHUB plugin is sluggish in the module viewer and here is why. > The module viewer > > > code is not making any effort to keep the current PLUGIN in RAM. > > > > > > This causes numerous unnecessary hits against GITHUB, only to retrieve > information that > > > should already be cached in the PLUGIN. Although an effort is made to > cache a list of > > > footprints, this is not the same as keeping the PLUGIN's cache, by > keeping the PLUGIN > > > alive for as long as the currently selected library is alive. > > > > > > Basically, it is a mess. > > > > > > I instrumented two API functions, FootprintEnumerate() and > FootprintLoad() with printf()s > > > which show the "this" pointer and aLibraryPath. At first I thought > the problem was > > > internal to GITHUB plugin, but it was not, and it will be a problem > using ANY PLUGIN, not > > > just GITHUB. Probably the KICAD_PLUGIN is a lot slower than it needs > to be. > > > > I going have to rethink the how KICAD_PLUGIN keeps track of the > > modification time of each file that is part of a library. I'm thinking > > about moving it up into the FP_CACHE object instead of the FP_CACHE_ITEM > > object. There may also be some issues with > > wxFileName.GetModificationTime() using a remote connection. I thought I > > had addressed the problem for local drives but apparently not. I'll > > take a look at it as soon as I get a chance. > > Caching cleverness cannot survive cache deletion/destruction. > > Remember I said the *this* pointer is changing, this means the entire > plugin is being deleted (any plugin and regardless of type) between > FootprintLoad () calls by the library browser. The plugin needs to be > attached to the FP_LIB_TABLE ROW so that it can stay alive and so that we > can pass the PROPERTIES to each API call. I have this on my to do list as > you can see. It is not my most urgent item, but now folks know why all > plugins are operating at less than ideal efficiency. > > Improvements will come. And it is fairly low hanging fruit. > > > > > > > > Wayne > > > > > > > > > > > > > > Here we get the list of footprints from aLibraryPath: > > > > > > FootprintEnumerate: this:0x220f7b0 > > > aLibraryPath:'https://github.com/CarlPoirier/BNC-Sockets_RevA' > > > > > > > > > Here we cache the library info: > > > cacheLib: this:0x220f7b0 m_lib_path:'' > > > aLibraryPath:'https://github.com/CarlPoirier/BNC-Sockets_RevA' > > > > > > and save the library path: > > > cacheLib2: this:0x220f7b0 m_lib_path:' > https://github.com/CarlPoirier/BNC-Sockets_RevA' > > > aLibraryPath:'https://github.com/CarlPoirier/BNC-Sockets_RevA' > > > > > > > > > > > > Here we load the first footprint, even though it is not shown yet. > > > FootprintLoad: this:0x220f7b0 aLibraryPath:' > https://github.com/CarlPoirier/BNC-Sockets_RevA' > > > > > > Here we load it again, don't know why: > > > FootprintLoad: this:0x220f7b0 aLibraryPath:' > https://github.com/CarlPoirier/BNC-Sockets_RevA' > > > > > > Re-cache the *entire* library information by hitting > https://github.com again! > > > (Please don't) Notice the "this" pointer has changed, somebody > dropped the old > > > PLUGIN pointer. This is the reason for the sluggishness. > > > FootprintLoad: this:0x22119e0 aLibraryPath:' > https://github.com/CarlPoirier/BNC-Sockets_RevA' > > > > > > Cache the info > > > cacheLib: this:0x22119e0 m_lib_path:'' > > > aLibraryPath:'https://github.com/CarlPoirier/BNC-Sockets_RevA' > > > cacheLib2: this:0x22119e0 m_lib_path:' > https://github.com/CarlPoirier/BNC-Sockets_RevA' > > > aLibraryPath:'https://github.com/CarlPoirier/BNC-Sockets_RevA' > > > > > > Pick a new footprint in the UI, but too bad the PLUGIN is being > reloaded AGAIN! > > > FootprintLoad: this:0x21e12b0 aLibraryPath:' > https://github.com/CarlPoirier/BNC-Sockets_RevA' > > > cacheLib: this:0x21e12b0 m_lib_path:'' > > > aLibraryPath:'https://github.com/CarlPoirier/BNC-Sockets_RevA' > > > cacheLib2: this:0x21e12b0 m_lib_path:' > https://github.com/CarlPoirier/BNC-Sockets_RevA' > > > aLibraryPath:'https://github.com/CarlPoirier/BNC-Sockets_RevA' > > > > > > > > > Continue with the inefficient strategy: > > > > > > FootprintLoad: this:0x2224f60 aLibraryPath:' > https://github.com/CarlPoirier/BNC-Sockets_RevA' > > > cacheLib: this:0x2224f60 m_lib_path:'' > > > aLibraryPath:'https://github.com/CarlPoirier/BNC-Sockets_RevA' > > > cacheLib2: this:0x2224f60 m_lib_path:' > https://github.com/CarlPoirier/BNC-Sockets_RevA' > > > aLibraryPath:'https://github.com/CarlPoirier/BNC-Sockets_RevA' > > > FootprintEnumerate: this:0x22376c0 > > > aLibraryPath:' > https://github.com/CarlPoirier/Buzzer_Beeper_RevA_25Oct2010' > > > cacheLib: this:0x22376c0 m_lib_path:'' > > > aLibraryPath:' > https://github.com/CarlPoirier/Buzzer_Beeper_RevA_25Oct2010' > > > cacheLib2: this:0x22376c0 > > > m_lib_path:' > https://github.com/CarlPoirier/Buzzer_Beeper_RevA_25Oct2010' > > > aLibraryPath:' > https://github.com/CarlPoirier/Buzzer_Beeper_RevA_25Oct2010' > > > FootprintLoad: this:0x22376c0 > > > aLibraryPath:' > https://github.com/CarlPoirier/Buzzer_Beeper_RevA_25Oct2010' > > > FootprintLoad: this:0x22376c0 > > > aLibraryPath:' > https://github.com/CarlPoirier/Buzzer_Beeper_RevA_25Oct2010' > > > FootprintLoad: this:0x22376c0 > > > aLibraryPath:' > https://github.com/CarlPoirier/Buzzer_Beeper_RevA_25Oct2010' > > > FootprintLoad: this:0x22376c0 > > > aLibraryPath:' > https://github.com/CarlPoirier/Buzzer_Beeper_RevA_25Oct2010' > > > FootprintLoad: this:0x22376c0 > > > aLibraryPath:' > https://github.com/CarlPoirier/Buzzer_Beeper_RevA_25Oct2010' > > > FootprintLoad: this:0x22376c0 > > > aLibraryPath:' > https://github.com/CarlPoirier/Buzzer_Beeper_RevA_25Oct2010' > > > FootprintLoad: this:0x2210ac0 > > > aLibraryPath:' > https://github.com/CarlPoirier/Buzzer_Beeper_RevA_25Oct2010' > > > cacheLib: this:0x2210ac0 m_lib_path:'' > > > aLibraryPath:' > https://github.com/CarlPoirier/Buzzer_Beeper_RevA_25Oct2010' > > > cacheLib2: this:0x2210ac0 > > > m_lib_path:' > https://github.com/CarlPoirier/Buzzer_Beeper_RevA_25Oct2010' > > > aLibraryPath:' > https://github.com/CarlPoirier/Buzzer_Beeper_RevA_25Oct2010' > > > FootprintLoad: this:0x22357f0 > > > aLibraryPath:' > https://github.com/CarlPoirier/Buzzer_Beeper_RevA_25Oct2010' > > > cacheLib: this:0x22357f0 m_lib_path:'' > > > aLibraryPath:' > https://github.com/CarlPoirier/Buzzer_Beeper_RevA_25Oct2010' > > > cacheLib2: this:0x22357f0 > > > m_lib_path:' > https://github.com/CarlPoirier/Buzzer_Beeper_RevA_25Oct2010' > > > aLibraryPath:' > https://github.com/CarlPoirier/Buzzer_Beeper_RevA_25Oct2010' > > > > > > _______________________________________________ > > > Mailing list: https://launchpad.net/~kicad-developers > > > Post to : [email protected] > > > Unsubscribe : https://launchpad.net/~kicad-developers > > > More help : https://help.launchpad.net/ListHelp > > > > > > > > > _______________________________________________ > > Mailing list: https://launchpad.net/~kicad-developers > > Post to : [email protected] > > Unsubscribe : https://launchpad.net/~kicad-developers > > More help : https://help.launchpad.net/ListHelp > > _______________________________________________ > Mailing list: https://launchpad.net/~kicad-developers > Post to : [email protected] > Unsubscribe : https://launchpad.net/~kicad-developers > More help : https://help.launchpad.net/ListHelp > >
_______________________________________________ Mailing list: https://launchpad.net/~kicad-developers Post to : [email protected] Unsubscribe : https://launchpad.net/~kicad-developers More help : https://help.launchpad.net/ListHelp

