On 23 July 2012 18:06, Scott Youngman <syo...@gmail.com> wrote: > I uninstalled test2, then installed test3 (Win7-64). Still hangs > essentially the same as before. On five successive runs, it successfully > showed 1, 4, 14, 10, and 4 cards (hanging on the next card). Autosave after > 20 cards, so those runs were on the same cards in the same order each time. > When Mnemosyne was hung, CPU usage was 28-30%, compared to 0-6% without > Mnemosyne. Memory usage was 38% either when hung or not hung (4 Gb RAM). > The cards reviewed did not include any images or sounds; total deck size > 1,170 cards. Hang occurs when Show Answer is requested. I'll try it again > with Process Hacker in the next day or so. > > Do you have a 4-core CPU? If you hit the System Information button in the main Process Hacker window, on the CPU tab there's a checkbox called "Show one graph per CPU". If the overall CPU usage is around 25-30% you'll often see that actually three cores are idle while one core is stuck in a busy loop, near 100% usage. Also, if you hover over one of the individual core graphs with the mouse, it'll tell you which process was using that core at that time.
I'd suspect that when Mnemosyne hangs, the main thread goes into an infinite loop, either by Mnemosyne repeatedly calling an sqlite function which fails, or by calling an sqlite function once which itself goes into an infinite loop, trying to malloc over and over again. Maybe it's a bug in the sqlite driver - I wonder why it only affects some machines though. Apparently, some query orderings cause sqlite to load the whole database into memory, but a 1170-card database shouldn't be very large, right? The cache option Peter found seems more likely to help on embedded devices with very little RAM, but your machine has 4 gigs plus virtual memory, which is a ridiculously large amount for most purposes. Another possibility, to do with SQL cursors in sqlite: http://supportforums.blackberry.com/t5/Java-Development/out-of-memory-in-sqlite/td-p/1617333 Does it make any difference if you use random order scheduling rather than most urgent first? If we can replicate the conditions that cause this hang, the problem will be 80% solved already. It would be nice if you could get a log of every SQL statement before Mnemosyne executes it. Oisín > > On Monday, July 23, 2012 1:44:06 AM UTC-6, Peter Bienstman wrote: >> >> Here's a test version with a reduced cache size: >> http://users.ugent.be/~**pbienst/pub/mnemosyne-2.0.1-**test3-setup.exe<http://users.ugent.be/~pbienst/pub/mnemosyne-2.0.1-test3-setup.exe> >> > -- You received this message because you are subscribed to the Google Groups "mnemosyne-proj-users" group. To post to this group, send email to mnemosyne-proj-users@googlegroups.com. To unsubscribe from this group, send email to mnemosyne-proj-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.