3 ms·
Does anyone have an idea of the performance impact of calling back and forth to Go from sqlite rather than C?
by mhio 4y ago
Does anyone have an idea of the performance impact of calling back and forth to Go from sqlite rather than C?
- justsomeuser 4y agohttps://dqlite.io/docs/faq https://dqlite.io/docs/faq, see "Why C"
- mhio 4y agoThanks for the rabbit hole. The faq linked golang CGo issue [0] features `mattn/go-sqlite` too. It appears there is a particular impact for repeatedly calling any C that takes longer than ~20µs but that issue doesn't really try to quantify general CGo impact. In my entirely unscientific go test on 100000 incremented integers, it's look like "some" impact. inserts took: 891.307359ms count: 100000 6.76659ms SELECT count(integer) from itable lower one: 1111 31.708µs SELECT lower(integer || integer || integer || integer) from itable repeat one: 1111 64.275µs SELECT repeat(integer, 4) from itable lower4: 149.027976ms SELECT lower(integer || integer || integer || integer) from itable repeat4: 507.223713ms SELECT repeat(integer, 4) from itable concat4: 132.156995ms SELECT integer || integer || integer || integer from itable It probably doesn't matter a huge amount for the ad hoc `dsq` use, having them available is better than not. [0]: https://github.com/golang/go/issues/19574 https://github.com/golang/go/issues/19574