mirror of
https://github.com/octoleo/syncthing.git
synced 2024-11-10 07:11:08 +00:00
90a1d99785
This is surprisingly memory expensive when Poll gets called a lot, such as when syncing lots of small files generating itemstarted/itemfinished events. It's line number three in this heap profile on the TestBenchmarkManyFiles test: jb@syno:~/src/github.com/syncthing/syncthing/test (master) $ go tool pprof ../bin/syncthing heap-13194.pprof Entering interactive mode (type "help" for commands) (pprof) top 80.91MB of 83.05MB total (97.42%) Dropped 1024 nodes (cum <= 0.42MB) Showing top 10 nodes out of 85 (cum >= 1.75MB) flat flat% sum% cum cum% 32MB 38.53% 38.53% 32.01MB 38.54% github.com/syndtr/goleveldb/leveldb/memdb.New 22.16MB 26.68% 65.21% 22.16MB 26.68% github.com/syndtr/goleveldb/leveldb/util.(*BufferPool).Get 13.02MB 15.68% 80.89% 13.02MB 15.68% time.NewTimer 6.94MB 8.35% 89.24% 6.94MB 8.35% github.com/syndtr/goleveldb/leveldb/memdb.(*DB).Put 3.18MB 3.82% 93.06% 3.18MB 3.82% github.com/calmh/xdr.(*Reader).ReadBytesMaxInto With this change the allocation is removed entirely. |
||
---|---|---|
.. | ||
debug.go | ||
events_test.go | ||
events.go |