> 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
> [email protected]
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users