{"push_id":2712860434,"size":36,"distinct_size":1,"ref":"refs/heads/master","head":"c89cbdb7aec689e6ff1a572de4d4f7efa838a15f","before":"ea62969176a579bef12b7d60395610fb05cfc661","commits":[{"sha":"fdbfad649b637b433ceed347280dae051b86af82","author":{"name":"Robert Krawitz","email":"38679fc073bba4584c8dba5f9ab19c456ce22bc6@alum.mit.edu"},"message":"Further perf improvements for loading and correct autostacking behavior.\n\nThis involves several changes:\n\n1) Insert EXIF data for each loaded image as it's loaded, but within a\n   transaction.  This may reduce I/O for big loads over batching up\n   all the loads at the end because it avoids a second pass over the\n   files.\n\n2) Add an image hash to the XMLDB, to allow fast lookup by name.  This\n   enables the new image loader to add new files in while looking for\n   duplicates and stack candidates.  The newly added images are kept\n   in a pending list until the load is complete.\n\n   This also improves correctness by making image load be a transaction.\n   It also allows for full autostacking during load, which wasn't\n   working before.\n\n3) Add a filename->MD5 map in addition to MD5->filename map to allow\n   duplicate detection without having to compute the MD5 checksum\n   on possible duplicate files, which is expensive in computation and\n   very expensive in I/O.\n\n4) Add image scout thread during load, to read files in from disk\n   ahead of the loader and reducing or eliminating time the new\n   image loader waits on I/O.  It limits its readahead to 20 images\n   to reduce the risk of blowing out RAM and making problems worse.\n   This appears to usually benefit if I/O is needed, and I haven't\n   found cases where it makes things worse (the most likely scenario\n   would be big images with slow I/O and low memory).\n\nIn addition, print the progress bar after the final image is loaded.","distinct":false,"url":"https://api.github.com/repos/KDE/kphotoalbum/commits/fdbfad649b637b433ceed347280dae051b86af82"},{"sha":"2a4526aab019bafc60530632ec6738ed00185dd4","author":{"name":"Robert Krawitz","email":"38679fc073bba4584c8dba5f9ab19c456ce22bc6@alum.mit.edu"},"message":"Improve I/O efficiency for MD5 calculation","distinct":false,"url":"https://api.github.com/repos/KDE/kphotoalbum/commits/2a4526aab019bafc60530632ec6738ed00185dd4"},{"sha":"14b90eacca84621d7f8e6dd67928aa1b416c1520","author":{"name":"Robert Krawitz","email":"38679fc073bba4584c8dba5f9ab19c456ce22bc6@alum.mit.edu"},"message":"Improve thumbnail generation speed and efficiency.","distinct":false,"url":"https://api.github.com/repos/KDE/kphotoalbum/commits/14b90eacca84621d7f8e6dd67928aa1b416c1520"},{"sha":"0a1596973c878cb33471beb14550db985878fd2f","author":{"name":"Robert Krawitz","email":"38679fc073bba4584c8dba5f9ab19c456ce22bc6@alum.mit.edu"},"message":"Overlap thumbnail create with image load.\n\nCombined, this takes very slightly longer than image load alone but\nmuch less than image load + thumbnail build.\n\nFix use of timer in thumbnail cache builder.","distinct":false,"url":"https://api.github.com/repos/KDE/kphotoalbum/commits/0a1596973c878cb33471beb14550db985878fd2f"},{"sha":"1d6d9ff201a4497dd7f0a9af94f8f22d9147b69c","author":{"name":"Robert Krawitz","email":"38679fc073bba4584c8dba5f9ab19c456ce22bc6@alum.mit.edu"},"message":"Improve thumbnail building.\n\n1) Fix the threading logic and add locks where needed.  The old code\n   relied on timers working across QThreads, which they don't.  It\n   also relied on signals being delivered to all QThreads, which\n   doesn't work if the thread in question does not have an event loop.\n\n2) Add incremental saving.  This currently has little performance\n   benefit except for very large datasets.","distinct":false,"url":"https://api.github.com/repos/KDE/kphotoalbum/commits/1d6d9ff201a4497dd7f0a9af94f8f22d9147b69c"},{"sha":"7651f3719368e36c4e721bbe35ed3919e35069d0","author":{"name":"Robert Krawitz","email":"38679fc073bba4584c8dba5f9ab19c456ce22bc6@alum.mit.edu"},"message":"Tune I/O buffering and scouting\n\nAllow different numbers of scout threads","distinct":false,"url":"https://api.github.com/repos/KDE/kphotoalbum/commits/7651f3719368e36c4e721bbe35ed3919e35069d0"},{"sha":"8dcb13b3e2483f06b3b36c06ebc5acf1d2f6448e","author":{"name":"Robert Krawitz","email":"38679fc073bba4584c8dba5f9ab19c456ce22bc6@alum.mit.edu"},"message":"Merge remote-tracking branch 'origin/master' into Load-performance","distinct":false,"url":"https://api.github.com/repos/KDE/kphotoalbum/commits/8dcb13b3e2483f06b3b36c06ebc5acf1d2f6448e"},{"sha":"da1c048b2e8b8102d9c229d19b5ded17294488ff","author":{"name":"Robert Krawitz","email":"38679fc073bba4584c8dba5f9ab19c456ce22bc6@alum.mit.edu"},"message":"Improve I/O performance by taking advantage of disk locality\n\nSee comment in FastDir.cpp.","distinct":false,"url":"https://api.github.com/repos/KDE/kphotoalbum/commits/da1c048b2e8b8102d9c229d19b5ded17294488ff"},{"sha":"9298e4356d06e051d47e948a26174a8a8e69c5ea","author":{"name":"Robert Krawitz","email":"38679fc073bba4584c8dba5f9ab19c456ce22bc6@alum.mit.edu"},"message":"Remove stray debugging message","distinct":false,"url":"https://api.github.com/repos/KDE/kphotoalbum/commits/9298e4356d06e051d47e948a26174a8a8e69c5ea"},{"sha":"7353a162c2a65662ceefa38c5dc28a46c899f973","author":{"name":"Robert Krawitz","email":"38679fc073bba4584c8dba5f9ab19c456ce22bc6@alum.mit.edu"},"message":"Clean up unused code.\n\nAdd an interval timer for image loads.","distinct":false,"url":"https://api.github.com/repos/KDE/kphotoalbum/commits/7353a162c2a65662ceefa38c5dc28a46c899f973"},{"sha":"32b24c9724322ded858c5a6118ad83fd7b33d314","author":{"name":"Robert Krawitz","email":"38679fc073bba4584c8dba5f9ab19c456ce22bc6@alum.mit.edu"},"message":"Generate new thumbnails for moved images detected during load.","distinct":false,"url":"https://api.github.com/repos/KDE/kphotoalbum/commits/32b24c9724322ded858c5a6118ad83fd7b33d314"},{"sha":"83212ee72c3ecf9b26a28656dcdfac1518571023","author":{"name":"Robert Krawitz","email":"38679fc073bba4584c8dba5f9ab19c456ce22bc6@alum.mit.edu"},"message":"Clean up tabs","distinct":false,"url":"https://api.github.com/repos/KDE/kphotoalbum/commits/83212ee72c3ecf9b26a28656dcdfac1518571023"},{"sha":"ac93cef62386644869ae5fc930426d98eca236eb","author":{"name":"Robert Krawitz","email":"38679fc073bba4584c8dba5f9ab19c456ce22bc6@alum.mit.edu"},"message":"Merge branch 'master' into Load-performance","distinct":false,"url":"https://api.github.com/repos/KDE/kphotoalbum/commits/ac93cef62386644869ae5fc930426d98eca236eb"},{"sha":"7c7898cb34414f213c21a4dc1e7ab4e20d2311fe","author":{"name":"Robert Krawitz","email":"38679fc073bba4584c8dba5f9ab19c456ce22bc6@alum.mit.edu"},"message":"Refactor image scout","distinct":false,"url":"https://api.github.com/repos/KDE/kphotoalbum/commits/7c7898cb34414f213c21a4dc1e7ab4e20d2311fe"},{"sha":"60dd71a25d445e4a812fcb85b49b89a9049f6ce0","author":{"name":"Robert Krawitz","email":"38679fc073bba4584c8dba5f9ab19c456ce22bc6@alum.mit.edu"},"message":"Refactor the scout code","distinct":false,"url":"https://api.github.com/repos/KDE/kphotoalbum/commits/60dd71a25d445e4a812fcb85b49b89a9049f6ce0"},{"sha":"04b39a0f19c8e51f492f6dbe61d15ae9b284b0d8","author":{"name":"Robert Krawitz","email":"38679fc073bba4584c8dba5f9ab19c456ce22bc6@alum.mit.edu"},"message":"Fetch EXIF data only once during load.","distinct":false,"url":"https://api.github.com/repos/KDE/kphotoalbum/commits/04b39a0f19c8e51f492f6dbe61d15ae9b284b0d8"},{"sha":"71ff9ad82f334a13d41c8d4f50c7f1baf0f32176","author":{"name":"Robert Krawitz","email":"38679fc073bba4584c8dba5f9ab19c456ce22bc6@alum.mit.edu"},"message":"Update the progress bar no more than once per second.","distinct":false,"url":"https://api.github.com/repos/KDE/kphotoalbum/commits/71ff9ad82f334a13d41c8d4f50c7f1baf0f32176"},{"sha":"73964af203bb9d1216a2e875b348959815753543","author":{"name":"Robert Krawitz","email":"38679fc073bba4584c8dba5f9ab19c456ce22bc6@alum.mit.edu"},"message":"Add notes on load performance.","distinct":false,"url":"https://api.github.com/repos/KDE/kphotoalbum/commits/73964af203bb9d1216a2e875b348959815753543"},{"sha":"ae7d4ef3d27af71b3a39f5ece6d2bff699728ed4","author":{"name":"Robert Krawitz","email":"38679fc073bba4584c8dba5f9ab19c456ce22bc6@alum.mit.edu"},"message":"Improve efficiency of loading preview from RAW image.","distinct":false,"url":"https://api.github.com/repos/KDE/kphotoalbum/commits/ae7d4ef3d27af71b3a39f5ece6d2bff699728ed4"},{"sha":"157f8b10a60dd656f4c7c9bd23ca8357fa6df812","author":{"name":"Robert Krawitz","email":"38679fc073bba4584c8dba5f9ab19c456ce22bc6@alum.mit.edu"},"message":"Correctly detect requests already in the queue.\n\nThe set of load requests is in the form of a set of pointers,\nnot a set of objects; as such, contains() is not very useful.","distinct":false,"url":"https://api.github.com/repos/KDE/kphotoalbum/commits/157f8b10a60dd656f4c7c9bd23ca8357fa6df812"}]}
{"actor":{"display_login":"kdesysadmin"}}