I was unable to run using CALIBRE_DEVELOP_FROM pointing to the current GitHub master. Unrelated to the issue I'm having, but thought you'd want to know. Details:
Spoiler:
I got a popup telling me there was an error and no GUI:
Code:
ERROR: Startup error: There was an error during calibre startup. Parts of calibre may not function. Click Show details to learn more.
Traceback (most recent call last):
File "C:\Users\jimm\Desktop\nook\calibre\src\calibre\gui2\main.py", line 289, in initialize_db_stage2
File "C:\Users\jimm\Desktop\nook\calibre\src\calibre\gui2\main.py", line 233, in start_gui
File "C:\Users\jimm\Desktop\nook\calibre\src\calibre\gui2\ui.py", line 247, in initialize
File "C:\Users\jimm\Desktop\nook\calibre\src\calibre\gui2\layout.py", line 332, in init_main_window_mixin
File "C:\Users\jimm\Desktop\nook\calibre\src\calibre\gui2\actions\fetch_news.py", line 32, in init_scheduler
File "C:\Users\jimm\Desktop\nook\calibre\src\calibre\gui2\dialogs\scheduler.py", line 586, in __init__
File "C:\Users\jimm\Desktop\nook\calibre\src\calibre\web\feeds\recipes\model.py", line 157, in __init__
File "C:\Users\jimm\Desktop\nook\calibre\src\calibre\web\feeds\recipes\model.py", line 226, in do_refresh
File "C:\Users\jimm\Desktop\nook\calibre\src\calibre\web\feeds\recipes\model.py", line 218, in factory
File "C:\Users\jimm\Desktop\nook\calibre\src\calibre\web\feeds\recipes\model.py", line 66, in __init__
File "C:\Users\jimm\Desktop\nook\calibre\src\calibre\utils\localization.py", line 379, in get_language
File "C:\Users\jimm\Desktop\nook\calibre\src\calibre\utils\localization.py", line 359, in get_iso_language
File "C:\Users\jimm\Desktop\nook\calibre\src\calibre\utils\localization.py", line 352, in _load_iso639
File "C:\Users\jimm\Desktop\nook\calibre\src\calibre\utils\resources.py", line 75, in get_path
IOError: [Errno 2] No such file or directory: 'C:\\Users\\jimm\\Desktop\\nook\\calibre\\resources\\localization\\iso639.calibre_msgpack'
Going back to the v3.31.0 tag worked. I turned on cProfile around sync_booklists:
Results with new Kindle:
It looks like the lion's share of the time is in
method 'write' of 'file' objects.
By contrast, here's the same for the old Kindle:
The number of writes is the same (only 9), but the time length is radically different.
It does
not look like it's the same processing between the two. For example
method 'get' of 'dict' objects is called ~400k times on the old Kindle and 5.5m times on the new one.