<feed xmlns='http://www.w3.org/2005/Atom'>
<title>go-oblast/benchmark/benchmark_test.go, branch v0.4.0</title>
<subtitle>A small ORM library for Go, focused on type safety and performance
</subtitle>
<link rel='alternate' type='text/html' href='http://git.xyrillian.de/go-oblast/'/>
<entry>
<title>return None instead of ErrNoRows from SelectOne{,Where}</title>
<updated>2026-05-04T14:23:24+00:00</updated>
<author>
<name>Stefan Majewsky</name>
<email>majewsky@gmx.net</email>
</author>
<published>2026-05-04T14:23:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.xyrillian.de/go-oblast/commit/?id=f2d6d6f2f24e7e7d594296b77fa044ccd547321d'/>
<id>f2d6d6f2f24e7e7d594296b77fa044ccd547321d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix benchmark calling the wrong test function</title>
<updated>2026-04-29T23:19:20+00:00</updated>
<author>
<name>Stefan Majewsky</name>
<email>majewsky@gmx.net</email>
</author>
<published>2026-04-29T23:19:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.xyrillian.de/go-oblast/commit/?id=651fb229ce9dba18fe076a8a33b904c74e1b7c6f'/>
<id>651fb229ce9dba18fe076a8a33b904c74e1b7c6f</id>
<content type='text'>
I should have been suspicious of the Gorm/Gorp numbers matching exactly :)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
I should have been suspicious of the Gorm/Gorp numbers matching exactly :)
</pre>
</div>
</content>
</entry>
<entry>
<title>benchmark: provide a handwritten N=1 implementation for InsertAndDelete</title>
<updated>2026-04-29T23:09:48+00:00</updated>
<author>
<name>Stefan Majewsky</name>
<email>majewsky@gmx.net</email>
</author>
<published>2026-04-29T23:02:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.xyrillian.de/go-oblast/commit/?id=ea9464fccd26783564e852f10212fc9ce850c5ff'/>
<id>ea9464fccd26783564e852f10212fc9ce850c5ff</id>
<content type='text'>
As I had expected, this removes an unfair disadvantage for Oblast, which
had to maintain two differently-typed slices for Insert() and Delete().
This is not really a fair comparison since usually you would not be
doing both operations in one go.

For Gorp, this rewrite is neutral. But in a shocking twist, Gorm somehow
does _significantly_ worse with a specialized N=1 implementation:

```
BenchmarkInsertAndDelete/N=1/via_Gorm-24
before: 11508 B/op    157 allocs/op
after:  12840 B/op    172 allocs/op
```
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As I had expected, this removes an unfair disadvantage for Oblast, which
had to maintain two differently-typed slices for Insert() and Delete().
This is not really a fair comparison since usually you would not be
doing both operations in one go.

For Gorp, this rewrite is neutral. But in a shocking twist, Gorm somehow
does _significantly_ worse with a specialized N=1 implementation:

```
BenchmarkInsertAndDelete/N=1/via_Gorm-24
before: 11508 B/op    157 allocs/op
after:  12840 B/op    172 allocs/op
```
</pre>
</div>
</content>
</entry>
<entry>
<title>add ctx arguments to most methods</title>
<updated>2026-04-29T22:56:38+00:00</updated>
<author>
<name>Stefan Majewsky</name>
<email>majewsky@gmx.net</email>
</author>
<published>2026-04-29T22:56:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.xyrillian.de/go-oblast/commit/?id=71d4c873bd12233b585637404115cfea9462c904'/>
<id>71d4c873bd12233b585637404115cfea9462c904</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>benchmark: compare InsertAndDelete to plain SQLite using QueryRow for INSERT</title>
<updated>2026-04-29T21:36:28+00:00</updated>
<author>
<name>Stefan Majewsky</name>
<email>majewsky@gmx.net</email>
</author>
<published>2026-04-29T21:36:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.xyrillian.de/go-oblast/commit/?id=b0c7e5a3bd1e590d49f793da65a74d646eadb538'/>
<id>b0c7e5a3bd1e590d49f793da65a74d646eadb538</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>exclude testhelpers from coverage testing</title>
<updated>2026-04-24T14:10:09+00:00</updated>
<author>
<name>Stefan Majewsky</name>
<email>majewsky@gmx.net</email>
</author>
<published>2026-04-24T13:46:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.xyrillian.de/go-oblast/commit/?id=e45a8be0dcfc375963a061d83e04429995053da1'/>
<id>e45a8be0dcfc375963a061d83e04429995053da1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>change Store.Insert() to take arguments by pointer</title>
<updated>2026-04-19T12:25:13+00:00</updated>
<author>
<name>Stefan Majewsky</name>
<email>majewsky@gmx.net</email>
</author>
<published>2026-04-19T12:25:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.xyrillian.de/go-oblast/commit/?id=e4c744843e740e74b824c43950b1961736ccb8ad'/>
<id>e4c744843e740e74b824c43950b1961736ccb8ad</id>
<content type='text'>
This increases memory overhead slightly, but when converting Gorp uses
into Oblast, I saw that there is a legitimate risk of just ignoring the
result value and continuing with the unupdated records. So according to
the design priorities that I myself laid down, I'm sacrificing some
performance for safety of use.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This increases memory overhead slightly, but when converting Gorp uses
into Oblast, I saw that there is a legitimate risk of just ignoring the
result value and continuing with the unupdated records. So according to
the design priorities that I myself laid down, I'm sacrificing some
performance for safety of use.
</pre>
</div>
</content>
</entry>
<entry>
<title>add type PreparedSelectQuery</title>
<updated>2026-04-18T15:10:34+00:00</updated>
<author>
<name>Stefan Majewsky</name>
<email>majewsky@gmx.net</email>
</author>
<published>2026-04-18T15:10:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.xyrillian.de/go-oblast/commit/?id=f8904431aa09796dab3c0bd159af74f8da4a153e'/>
<id>f8904431aa09796dab3c0bd159af74f8da4a153e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>write out a proper README</title>
<updated>2026-04-18T14:24:52+00:00</updated>
<author>
<name>Stefan Majewsky</name>
<email>majewsky@gmx.net</email>
</author>
<published>2026-04-18T14:24:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.xyrillian.de/go-oblast/commit/?id=caa7af3fb549ebd4e449c17dffad8bdd6593ea58'/>
<id>caa7af3fb549ebd4e449c17dffad8bdd6593ea58</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>benchmark: add Gorm</title>
<updated>2026-04-17T20:46:28+00:00</updated>
<author>
<name>Stefan Majewsky</name>
<email>majewsky@gmx.net</email>
</author>
<published>2026-04-17T20:46:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.xyrillian.de/go-oblast/commit/?id=c1c8cc2f6b49741d33a83a534d244fc01b0e1b4a'/>
<id>c1c8cc2f6b49741d33a83a534d244fc01b0e1b4a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
