• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: NSTextView and layout manager speed (was: how to be efficient)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: NSTextView and layout manager speed (was: how to be efficient)


  • Subject: Re: NSTextView and layout manager speed (was: how to be efficient)
  • From: glenn andreas <email@hidden>
  • Date: Thu, 28 Apr 2005 11:03:40 -0500


On Apr 28, 2005, at 10:44 AM, Keith Blount wrote:

Thanks again for your reply. I ran Sampler, and all
it's really telling me is that the NSLayoutManager
calls are slowing things down (lots of private
NSLayoutManager and typesetter methods to do with
laying out the text). I've pasted my methods that call
the layout manager methods during load below, in case
anybody can suggest a way of doing it faster. The
slowdown happens when there are a lot of notes that
need loading in the margin of a document - for
instance, with a document that has 200 notes, these
methods have to be called 200 times when the document
loads. On my G4 1Ghz, it takes 3 seconds to load a
document with 200 notes, so maybe that isn't so slow,
but if there is a way of getting them faster, I would
love to find it.


Not sure how well this will fit your model, but it almost looks like what is happening is that the layout for the first N glyphs is done (because you need to get the location of N), and then you come back and ask for N+M, so it needs to layout from N to M, etc... and it appears that this start/stop layout has at least some overhead.


So the easy experiment is to get the layout of the last glyph needed, which will cause all things before then to be laid out (and hopefully be faster to get them).

You could also try using a delegate of the the layout manager and implement "layoutManager:didCompleteLayoutForTextContainer:atEnd:" and spawn this whole thing off in a separate thread so that it will load it, and then update your UI on the main thread with your recalculated locations.

Just some random ideas, for whatever it's worth.

(You might also want to save the last known locations in the file, so you've got something to start with when you read in the document, and adjust it as the "real" values are calculated).


Glenn Andreas                      email@hidden  <http://www.gandreas.com/> oh my! quadrium | build, mutate, evolve | images, textures, backgrounds, art

_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


References: 
 >Re: NSTextView and layout manager speed (was: how to be efficient) (From: Keith Blount <email@hidden>)

  • Prev by Date: Re: NSTextView and layout manager speed (was: how to be efficient)
  • Next by Date: Newbie IB question
  • Previous by thread: Re: NSTextView and layout manager speed (was: how to be efficient)
  • Next by thread: Newbie IB question
  • Index(es):
    • Date
    • Thread