← Back to team overview

kicad-developers team mailing list archive

Re: Another performance patch....

 

Jeff,

I like this patch in theory but I am worried about the quality of wxFileSymtemWatcher across platforms. Let's shelve this until v6. If it doesn't cause any platform specific issues, we can merge it after the stable 5 release.

Thanks,

Wayne

On 02/10/2018 06:14 PM, Jeff Young wrote:
Hi Wayne,

Here’s my wxFileSystemWatcher idea for invalidating the caches on Unix.  It’s actually quite compact, but I didn’t test it as the lastModTime checking works on Mac.

Let me know what you think.

Cheers,
Jeff.





On 10 Feb 2018, at 22:36, Jeff Young <jeff@xxxxxxxxx> wrote:

<0001-Performance-fixes-for-the-place-footprint-list-all-d.patch>

On 10 Feb 2018, at 22:34, Jeff Young <jeff@xxxxxxxxx> wrote:

Hi Wayne,

Yep, just a minute.  (I suggested you back your other change out first in the bug report, but don’t do that now as my rebase will be on top of your merge.)

Cheers,
Jeff.


On 10 Feb 2018, at 22:28, Wayne Stambaugh <stambaughw@xxxxxxxxx> wrote:

Jeff,

Would you please rebase the performance patch so I can use `git am` to merge it.

Thanks,

Wayne

On 02/08/2018 07:35 PM, Jeff Young wrote:
Ping.
Any thoughts on patching wxWidgets for other platforms?
On 6 Feb 2018, at 14:08, Jeff Young <jeff@xxxxxxxxx <mailto:jeff@xxxxxxxxx>> wrote:

I accidentally dropped the dev list off the last few replies.  They included an update which fixed the issue Seth hypothesised.

But I’m updating it one more time because, well, I made it faster again.

There are two patches this time: the updated Kicad patch which knocks yet another 1/4 second off both first- and subsequent-times, and a wxWidgets patch which when combined with the Kicad patch brings the subsequent-time to near-instantaneous.

Since we maintain our own Mac wxWidgets there’s no reason not to get the full benefit there.  I’ll leave it up to others to decide whether to include the wxWidgets patch for other platforms.

(Note: while the two patches are dependent on each other /for the final /performance gain, they are /not/ dependent on each other for compiling/linking/running.)

Cheers,
Jeff.



On 5 Feb 2018, at 22:48, Jeff Young <jeff@xxxxxxxxx <mailto:jeff@xxxxxxxxx>> wrote:

I think I must be having a thick moment, because I’m still not following you.

If I create a new library in the Footprint Editor and save it to a new location, then those components won’t be immediately available in Place Footprint until the library location is added to the Footprint Library Table, right?

Or am I completely missing something?

Cheers,
Jeff.

On 5 Feb 2018, at 22:17, Wayne Stambaugh <stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>> wrote:

On 02/05/2018 05:08 PM, Jeff Young wrote:
Hi Wayne,
Do you mean if I use a text editor to modify a module file while KiCad is running, will KiCad notice and reload it?  The answer is yes.  The checksum is generated as a hash of the disk directory last-modified dates; the lib-table only tells it what the current libraries are.

A text editor is one use case but the footprint library editor can also save an entire library file without going through the fp-lib-table so it's important that we don't break this behavior.  I may have missed this as I am sitting in Montreal airport after missing my connection with no sleep, a nasty case of jet lag, and an inbox that is sprialing out of control so I may have just overlooked it.

Nice talk at FOSDEM, by the way.  Do we all get t-shirts? ;)

Maybe one of these days I'll get around to some KiCad apparel of some type to give out to the dev team.  Although I don't think you should depend on my lack of graphics skills to design anything. :)

Cheers,

Wayne


Cheers,
Jeff.
PS: updated patch attached to fix the issue Seth discovered (hypothesised?).
On 5 Feb 2018, at 21:59, Wayne Stambaugh <stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>> wrote:

What happens when footprint library file is modified outside the fp-lib-table?  At one point you could change the footprint library file without performing the file write through the fp-lib-table and the next time you accessed the library, it would recognize the file was modified and reload the cache.  Please make sure this behavior is not broken.

On 02/05/2018 04:51 PM, Jeff Young wrote:
wxWidgets should return Now() which will make the checksums not match and trigger a reload.
Of course what actually happens is that wxWidgets asserts. ;)
New patch on the way….
Cheers,
Jeff.
On 5 Feb 2018, at 21:42, Seth Hillbrand <seth.hillbrand@xxxxxxxxx <mailto:seth.hillbrand@xxxxxxxxx> <mailto:seth.hillbrand@xxxxxxxxx>> wrote:

Jeff-

Will removing a footprint library trigger a refresh?  Or will that mess up the checksum calculation?

-S

2018-02-05 13:04 GMT-08:00 Jeff Young <jeff@xxxxxxxxx <mailto:jeff@xxxxxxxxx> <mailto:jeff@xxxxxxxxx>>:

This one for Place Footprint (specifically the List All dialog
found therein).

On my machine it knocks the first-use time from 4s to 3s and the
subsequent-use time from 2.5s to 1s.

Cheers,
Jeff.


_______________________________________________
Mailing list: https://launchpad.net/~kicad-developers
<https://launchpad.net/~kicad-developers>
Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
<mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
Unsubscribe : https://launchpad.net/~kicad-developers
<https://launchpad.net/~kicad-developers>
More help   : https://help.launchpad.net/ListHelp
<https://help.launchpad.net/ListHelp>


_______________________________________________
Mailing list: https://launchpad.net/~kicad-developers
Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp
_______________________________________________
Mailing list: https://launchpad.net/~kicad-developers
Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp

_______________________________________________
Mailing list: https://launchpad.net/~kicad-developers
Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp


_______________________________________________
Mailing list: https://launchpad.net/~kicad-developers
Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp
_______________________________________________
Mailing list: https://launchpad.net/~kicad-developers
Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp

_______________________________________________
Mailing list: https://launchpad.net/~kicad-developers
Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp


_______________________________________________
Mailing list: https://launchpad.net/~kicad-developers
Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp



Follow ups

References