Comment #15 on issue 265 by m.niloc: Slow pasting
http://code.google.com/p/yi-editor/issues/detail?id=265
This small change speeds up Yi in my test from 5.5s to 3.5s. It is ugly and
I don't
think it should be committed; my only point here is to demonstrate that
prepareAction
is definitely performance-critical.
hunk ./Yi/UI/Vty.hs 292
tabWidth = tabSize . fst $ runBuffer win b indentSettingsB
prompt = if isMini win then miniIdentString b else ""
- (rendered,toMarkPoint',cur) = drawText h' w
+ (rendered,_,cur) = drawText h' w
fromMarkPoint
point $
tabWidth
hunk ./Yi/UI/Vty.hs 298
([(c,(wsty, (-1))) | c <- prompt] ++
bufData ++ [('
',(wsty, eofPoint))])
-- we always add one character which can be
used to
position the cursor at the end of file
+ bufDataPlain = setSty undefined text
+ (_,toMarkPoint',_) = drawText h' w
+ fromMarkPoint
+ point $
+ tabWidth
+ ([(c,(wsty, (-1))) | c <- prompt] ++
bufDataPlain ++
[(' ',(wsty, eofPoint))])
+ -- we always add one character which can be
used to
position the cursor at the end of file
(_, b') = runBuffer win b (setMarkPointB toM toMarkPoint')
(modeLine0, _) = runBuffer win b $ getModeLine (commonNamePrefix e)
modeLine = if notMini then Just modeLine0 else Nothing
For timing I'm using the LaTeX test HackerMain.hs above renamed to Main.hs,
plain
"cabal configure" so no profiling, and a shellscript using the "empty"
terminal
redirection tool: "empty -f -i in -o out -f ./yi && time cat out
>/dev/null".
Before:
$ sh time
real 0m5.473s
user 0m0.000s
sys 0m0.000s
After:
$ sh time
real 0m3.499s
user 0m0.000s
sys 0m0.004s
--
You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:
http://code.google.com/hosting/settings
--~--~---------~--~----~------------~-------~--~----~
Yi development mailing list
[email protected]
http://groups.google.com/group/yi-devel
-~----------~----~----~----~------~----~------~--~---