{"push_id":820908346,"size":7,"distinct_size":7,"ref":"refs/heads/master","head":"20322f254e72aee5d1803d2ee2bf78bec9911d42","before":"7c9ddcd6fe5ea3fbf7bf572cddf82d918058f3bd","commits":[{"sha":"9fc436a20528f1936d370c1e6199464e1b591012","author":{"email":"1a07cafdeda5a41e2ac72bc34ed40714e400f220@safe-mbox.com","name":"Richard Gooch"},"message":"Major refactoring of lib/filesystem package to use generic inodes.\n\nReplace the separate lists of regular files, symlinks, files and directories\nwith a single EntryList for directories. Replace the separate inode tables\nwith a single inode table of GenericInode which is an interface type. Use\ntype switches to yield the specific types for each inode.\n\nThis change makes the code a lot cleaner and smaller (~200 lines). It also\nmakes it easy to show a listing of a directory tree with all the entries\nsimply sorted rather than grouped by type of inode. Listings are now similar\nto ls(1) output.\n\nIt increases the allocated memory ~20% and system memory ~21% for the first\nscan. The sharing ratio between one scan and the next is reduced because the\ndirectory entries are not yet shared. The increase for the 4th scan is:\nallocated: 68%, system: 58%. Future work is needed on improving the sharing.\n\nThis change also increases the time taken to encode/decode a tree by ~50%.","distinct":true,"url":"https://api.github.com/repos/rgooch/Dominator/commits/9fc436a20528f1936d370c1e6199464e1b591012"},{"sha":"4b7a6531b6887250df7bf338ae5983085219b7d5","author":{"email":"1a07cafdeda5a41e2ac72bc34ed40714e400f220@safe-mbox.com","name":"Richard Gooch"},"message":"Merge: limit OS threads to 1 by default.","distinct":true,"url":"https://api.github.com/repos/rgooch/Dominator/commits/4b7a6531b6887250df7bf338ae5983085219b7d5"},{"sha":"d2498bdf8913124d8ef210d61493cd256122630d","author":{"email":"1a07cafdeda5a41e2ac72bc34ed40714e400f220@safe-mbox.com","name":"Richard Gooch"},"message":"Re-use directory entries and EntryList from previous scan.\n\nThis claws back some of the memory bloat from the recent refactoring. For\nthe 4th scan it saves: ~30% allocated, ~29% system.","distinct":true,"url":"https://api.github.com/repos/rgooch/Dominator/commits/d2498bdf8913124d8ef210d61493cd256122630d"},{"sha":"02cdec3d9bbe94b97f3d8faa1935f5a92816cf45","author":{"email":"1a07cafdeda5a41e2ac72bc34ed40714e400f220@safe-mbox.com","name":"Richard Gooch"},"message":"Rename DebugWrite() to List(), now that it looks a bit like ls(1) output.","distinct":true,"url":"https://api.github.com/repos/rgooch/Dominator/commits/02cdec3d9bbe94b97f3d8faa1935f5a92816cf45"},{"sha":"ac1874243e62939262e5d8f44f05beb2610945fa","author":{"email":"1a07cafdeda5a41e2ac72bc34ed40714e400f220@safe-mbox.com","name":"Richard Gooch"},"message":"Fix bug which prevented copying old directory EntryList.\n\nThis claws back a bit more of the memory bloat from the recent refactoring.\nFor the 4th scan it saves: ~3% system.","distinct":true,"url":"https://api.github.com/repos/rgooch/Dominator/commits/ac1874243e62939262e5d8f44f05beb2610945fa"},{"sha":"a69d4d1c08ac8f3ad00abab9b80567aa4aaabe89","author":{"email":"1a07cafdeda5a41e2ac72bc34ed40714e400f220@safe-mbox.com","name":"Richard Gooch"},"message":"Copy old directory inode if EntryList is the same.\n\nThis claws back a bit more of the memory bloat from the recent refactoring.\nFor the 4th scan it saves: ~4% allocated, ~4% system.","distinct":true,"url":"https://api.github.com/repos/rgooch/Dominator/commits/a69d4d1c08ac8f3ad00abab9b80567aa4aaabe89"},{"sha":"20322f254e72aee5d1803d2ee2bf78bec9911d42","author":{"email":"1a07cafdeda5a41e2ac72bc34ed40714e400f220@safe-mbox.com","name":"Richard Gooch"},"message":"Call the garbage collector every 1000 directory entries scanned.\n\nThis claws back most of the remaining memory bloat from the recent\nrefactoring, at the cost of ~7% slower scan speed (when scanning at\nfull speed and not rate-limiting the I/O).\nIt brings system memory use for the 4th scan down ~14%, and back on-par\nwith the code prior to the refactoring.\n\nTests show that increasing the garbage collection rate reduces system\nmemory use but further slows down the scan speed. On a system where the\nI/O is being rate-limited, background garbage collection may further\ndecrease the system memory consumed.\n\nIt would be nice to not have to play these tricks. Experiments with\nmaintaining small object pools for short-lived objects did not yield\nmeasurable benefits.","distinct":true,"url":"https://api.github.com/repos/rgooch/Dominator/commits/20322f254e72aee5d1803d2ee2bf78bec9911d42"}]}