Slow application launch speed

My Zotero has a really slow start up speed. From the the point I double click the application, it takes about ~11-15 secs for Zotero to launch. Is this because of my large library? There any thing I can do to speed up the launch? Sharing my debug ID below.

Debug ID D655853481
  • First, I would disable all add-ons and see if it improves the startup speed
  • (But 15 secs for a large library sounds pretty standard to me -- Zotero does a lot of frontloading of activity when it gets started)
  • (3)(+0000447): monkey-patch: 6.0.23: BBT enabled

    (3)(+0005849): Initializing Zotero pane
    There's a ~6-second delay in there after BBT loads that I wouldn't expect to see, so yes, I would start with disabling plugins.
  • edited March 30, 2023
    "monkey-patch: 6.0.23: BBT enabled" doesn't really mean BBT is loaded, it means it will load. I test for some conditions and if those fail, BBT will not load (no monkey patches etc).

    BBT does some prep work when the log says "Loading Better BibTeX: starting...", but defers most of the load until Zotero.Schema.schemaUpdatePromise resolves, at which point the log will say "Zotero ready, let's roll!", and then most of the startup from BBT happens. In my experience, 6 seconds between the BBT overlay loading and Zotero.Schema.schemaUpdatePromise resolving is optimistic -- I usually get 7 - 10 seconds with a small library (MBPro 2018, 16G Ram).
  • After disabling BBT, the launch time was reduced to ~6-7 seconds.

    Debug ID: D734872114
  • edited April 2, 2023
    I've just released a new BBT that defers all BBT startup until after schemaUpdatePromise resolves, but that will only help a little.

    What I'm currently seeing is that the BBT code takes approx 4 seconds to load. After that, BBT waits for approx 8 seconds for schemaUpdatePromise to resolve, and after that takes another 4 seconds to initialize. That initialization is mostly async code, so it shouldn't be blocking, but it still runs on the main thread.

    The 4 sec code startup is concerning though. I'll see what I can do about that, but I have tried to make the code tree-shakable where I can.

    I'd love to shuttle off BBT to a worker in it's entirety, but that'd mean the loss of drag and drop of BBT formats (which must be sync, so they can't interact with the worker).
  • I am now getting ~12-13 seconds with latest version of BBT enabled. I am getting around ~6-7 seconds until I see the app launch with BBT disabled. Note, when I say "app launch" I mean that I see Zotero window open but it is not fully done loading everything and ready for use. My primary use case for BBT is when writing with LaTex, so I am okay with leaving BBT disabled until I need it again when writing. It would be great if speed of launch can be improved but its not a hard requirement for me. Please let me know if you want me to do any other troubleshooting.

    Debug ID w/BBT disabled: D866400615
    Debug ID w/ latest version of BBT enabled: D635771635
  • This is reproducible for me, so not currently necessary.
  • BBT off increases like subjective ~3x. Library contains 2.6k items. BBT stays off then.
  • Once it is started, BBT shouldn't put noticeable strain on a 2.6k library. Autoexports happen in the background, and aside that, BBT doesn't do much.

    What does BBT increase 3x in your experience?
  • It seems to increase the loading time of Zotero, meaning it's up after 3 sec. without BBT. I don't use it regularly, so disabling BBT is Ok. I only followed recommendations above and tried disabling it.
  • The new BBT has cut down its startup by half. Still not instant, but better.
Sign In or Register to comment.