On Thu 2007-01-18 00:13:54, Rafael J. Wysocki wrote: > Hi, > > On Wednesday, 17 January 2007 23:03, Michal Schmidt wrote: > > Pavel Machek wrote: > > > Hi! > > > > > >> writing the image to disk wastes 10 seconds by waiting for 0.1s a > > >> hundred times. > > > > > > Are you sure? > > > > In practice the real slowdown is less than 10s, because the disk is > > usually writing while key_pressed() is waiting. If you had a very fast > > disk, the slowdown would become more noticeable. I actually tried > > commenting out the call to swap_write_page from the loop in save_image > > and the loop still took 10s to run. With my patch it executes almost > > instantly. > > > > >> The problem is the key_pressed function. It always attempts to read a > > >> char from the terminal with a timeout of 1 decisecond. It's better to > > >> poll the terminal without unnecessary waiting. > > >> > > >> On my laptop the improvement is very noticeable if I enable compression. > > >> With compression disabled, the effect is not so obvious, because disk > > >> throughput is the bottleneck. > > > > > >> @@ -54,6 +52,14 @@ > > >> static int key_pressed(const char key) > > >> { > > >> char c; > > >> + fd_set fds; > > >> + struct timeval tv = {0, 0}; > > >> + > > >> + FD_ZERO(&fds); > > >> + FD_SET(0, &fds); > > >> + if (select(1, &fds, NULL, NULL, &tv) <= 0) > > >> + return 0; > > >> + > > >> if (read(0, &c, 1) > 0 && c == key) > > >> return 1; > > > > > > > > > That seems unneccessarily complex, just set stdin to nonblocking mode > > > and read should return immediately, right? > > > Pavel > > > > Right. Here's a much simpler patch with the same effect. > > I think this one is simple enough so that we can apply it. :-) Pavel? Ack, go ahead.
-- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Suspend-devel mailing list Suspend-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/suspend-devel