> just for anybody who is interested: > > I translated Jim's function into window code and added > a page of 1024 that will be written, instead of a single byte. > On my Win-XP system I got 55 TPS, much faster than sqlite > seems to write a page but that might be related to the > additional overhead sqlite needs to do. > > This brings me to a nice to have feature request: > How about adding similar test function in the sqlite API ? > This might use the vfs to write pages and gives some feedback > on the performance of the system where sqlite runs on. > It might also detect problems with the commit function... > Just an idea... >
Interesting idea. > Anyway, here is my win32 version Jim's test function: > > --- > #include > #include > > #define TESTWRITES 1000 > > int TestDisk () > { > int fd; > int n; > int loops; > unsigned char Page[1024]; > time_t elap; > time_t start; > > if ((fd=_open("C:\\testfile.db", O_RDWR+O_CREAT, 0777)) == -1) > { > fprintf(stderr, "Error opening file"); > exit(1); > } > > start = time(NULL); > for(loops=0; loops > { > if (_lseek(fd, 0, SEEK_SET) == -1) { > fprintf(stderr,"Error seeking file"); > exit(1); > } > > n = _write(fd, Page, 1024); > if (n != 1024) { > fprintf(stderr,"Error writing file"); > exit(1); > } > _commit(fd); > } > elap = time(NULL)-start; > fprintf(stderr,"Time: %d seconds; TPS=%f\n", (int)elap, > TESTWRITES*1.0/((int)elap)); > > return(0); > } > ----- > > Jim Wilcoxson wrote: > > I'm running on Linux with ext3 and just wrote a Python test program to > > insert rows into a table with a single column, no indexing, and doing > > a commit after each insert. When I first ran it, I got around 440 > > inserts per second, which is clearly impossible. This is a 7200rpm > > drive, so even if I could write a row on every revolution, the maximum > > insert rate would be 120 per second. I tried adding "pragma > > sychronous=normal", and it sped up to 520 TPS. With synchronous=full > > it slowed back to 420-460, so this must be the Python default. Adding > > synchronous=off increased the rate to over 6000 TPS -- basically > > writing to memory instead of disk. > > _______________________________________________ > sqlite-users mailing list > sqlite-users@sqlite.org > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users