Hi Josh.
22 December 2011 15:04
On Friday, December 16, 2011 at 10:17 AM, Stephen Horne wrote:

I am afraid I don't have a copy of InDesign, so I cannot test your specific situation. However, it would be interesting to know what part of your script is slow. Specifically, I would be interested in seeing some benchmarking to indicate whether your script is wasting more time on the "load_bridge_support_file" line or the "SBApplication.applicationWithURL" line. (I suppose calls through to InDesign could be the bottle neck as well, but that would be rather unexpected I should think.)

You can probably start off with Ruby's Benchmark library (with some decent documentation here: http://rubydoc.info/stdlib/benchmark/frames , though honestly you only really need "Benchmark.measure"). From there it might be interesting to look at other profiling results, but best to start simple.

I've had a look at benchmark, and it seems it is the bit that creates the link to InDesign that's the bottleneck.

Here's the code I used:

    #!/usr/local/bin/macruby
    framework 'ScriptingBridge'
    require 'benchmark'

    Benchmark.bm(7) do |x|
      x.report("load_BSF:    ") {
        load_bridge_support_file '/Users/fatboy/inDesign.bridgesupport'}

      x.report("Create NSURL:") {
        @appurl = NSURL.fileURLWithPath("/Applications/Adobe Indesign CS5/Adobe InDesign CS5.app")}

      x.report("Link to ID:  ") {
        @id = SBApplication.applicationWithURL(@appurl)}

      x.report("Link to doc1:") {
        @doc = @id.activeDocument}
    end

and here's the report it returned:

                      user     system      total        real
    load_BSF:      0.130000   0.000000   0.130000 (  0.109424)
    Create NSURL:  0.000000   0.000000   0.000000 (  0.001404)
    Link to ID:   27.770000   1.270000  29.040000 ( 14.824474)
    Link to doc1:  0.000000   0.000000   0.000000 (  0.000127)


Fb

- Josh

_______________________________________________
MacRuby-devel mailing list
MacRuby-devel@lists.macosforge.org
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel

Reply via email to