Hi Bram and Yegappan, Yegappan, You were right -saving the qf_last makes a big difference. I probably checked your patch after using many quickfix operations (see below).
Let me summarize the problems found so far using the agrep plugin: 1. SEGV crashes - fixed 2. Vim hangs while quickfix window is opened - fixed. 3. GUI hangs - fixed 4. Timer issue in the GUI - fixed 5. quickfix is slow in general - it's much better with Yegappan's patch or 1881 but Vim is still not as responsive as it is when using the same search without quickfix (with Agrep window). Following are the top lines from the profiler log, in case you'll see something that can be optimized: % cumulative self self total time seconds seconds calls ms/call ms/call name 11.34 0.11 0.11 11084 0.01 0.01 buf_valid 10.31 0.21 0.10 11378 0.01 0.01 do_cmdline 5.15 0.26 0.05 9912382 0.00 0.00 otherfile_buf 5.15 0.31 0.05 452997 0.00 0.00 get_func_tv 5.15 0.36 0.05 11083 0.00 0.02 buflist_new 5.15 0.41 0.05 11082 0.00 0.01 buflist_findname_stat 5.15 0.46 0.05 2131 0.02 0.02 buflist_findnr 6. Agrep become very slow after using the quickfix list many times. Well, this is what I see in the profiler log: % cumulative self self total time seconds seconds calls ms/call ms/call name 55.98 4.21 4.21 33246 0.13 0.13 qf_mark_adjust <<< 12.10 5.12 0.91 50685 0.02 0.02 buf_valid 6.38 5.60 0.48 11091 0.04 0.05 buflist_findpat 5.05 5.98 0.38 13256 0.03 0.03 buflist_findnr It looks like qf_mark_adjust is called each time line is appended to a buffer using 'out_io': 'buffer' for each entry in any quickfix list available. Can we avoid this? Thanks, Ramel -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
