Just to add some info about my experience. The download page says that it may be slow on "older devices". I've got Fujitsu-Siemens Loox 718, which I think is not that old (it has 520MHz processor).
The difference compared to version 0.9 is HUGE. Not only for the new options that require more computing power, but for settings known from 0.9 too. Especially it is painful that you can't do almost anything while generating a new grid. After tapping the screen it reacts after about 30 seconds (the whole device is hung, not only the program). With version 0.9 the time of reaction was 0.5 sec. IN POWER-SAVING MODE (lowest processor speed). Also it seems that even though the generation algorithm uses more processor power, it is much slower than in 0.9.
If the speed can't be increased, or it requires much work, I have got some ideas to make the slowness less bothersome:
1. Decrease the processor power usage for the generation algorithm (decrease the thread priority, make the generation within a timer event, or however it is done now. It worked in 0.9 in the end, right?). It will increase the generation time, but I'd prefer that instead of not being able to do anything during generation.
2. Add a generation countdown or progress bar - like in PocketLoop, but showing always when a new grid is being generated (not only after user clicks "New").
3. Generate more grids in the background (I would say about 10, or make the number configurable). The grid files are not very large, so it shouldn't be a problem.
Also from what I see it seems that the generation may hang in the middle if the device have been turned off and on during the process, especially when symmetries are enabled. The countdown would allow to check if it's true, or just the generation is THAT slow with symmetries.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have one solution for this problem - "outsource" the generation to a desktop machine. I have a working prototype (off the main codebase) that:
- Adds a preference for "generate online". When selected, PocketSudoku would attempt to generate using a website (url can be provided)
- Exposes the grid generation algorithm via a webpage that takes the grid parameters via the URL and returns a base64-encoded stream
It makes a world of a difference on my old HTC Touch.
The approach has one major shortcoming: someone needs to host the web service. One could self-host, but it significantly raises the deployment bar (right now, the web page is part of an ASP.net application that needs to be deployed on an IIS server).
I can share out the code if anyone wants to take a look at it.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Just to add some info about my experience. The download page says that it may be slow on "older devices". I've got Fujitsu-Siemens Loox 718, which I think is not that old (it has 520MHz processor).
The difference compared to version 0.9 is HUGE. Not only for the new options that require more computing power, but for settings known from 0.9 too. Especially it is painful that you can't do almost anything while generating a new grid. After tapping the screen it reacts after about 30 seconds (the whole device is hung, not only the program). With version 0.9 the time of reaction was 0.5 sec. IN POWER-SAVING MODE (lowest processor speed). Also it seems that even though the generation algorithm uses more processor power, it is much slower than in 0.9.
If the speed can't be increased, or it requires much work, I have got some ideas to make the slowness less bothersome:
1. Decrease the processor power usage for the generation algorithm (decrease the thread priority, make the generation within a timer event, or however it is done now. It worked in 0.9 in the end, right?). It will increase the generation time, but I'd prefer that instead of not being able to do anything during generation.
2. Add a generation countdown or progress bar - like in PocketLoop, but showing always when a new grid is being generated (not only after user clicks "New").
3. Generate more grids in the background (I would say about 10, or make the number configurable). The grid files are not very large, so it shouldn't be a problem.
Also from what I see it seems that the generation may hang in the middle if the device have been turned off and on during the process, especially when symmetries are enabled. The countdown would allow to check if it's true, or just the generation is THAT slow with symmetries.
I have one solution for this problem - "outsource" the generation to a desktop machine. I have a working prototype (off the main codebase) that:
- Adds a preference for "generate online". When selected, PocketSudoku would attempt to generate using a website (url can be provided)
- Exposes the grid generation algorithm via a webpage that takes the grid parameters via the URL and returns a base64-encoded stream
It makes a world of a difference on my old HTC Touch.
The approach has one major shortcoming: someone needs to host the web service. One could self-host, but it significantly raises the deployment bar (right now, the web page is part of an ASP.net application that needs to be deployed on an IIS server).
I can share out the code if anyone wants to take a look at it.