sketchucation logo sketchucation
    • Login
    ℹ️ Licensed Extensions | FredoBatch, ElevationProfile, FredoSketch, LayOps, MatSim and Pic2Shape will require license from Sept 1st More Info

    Add_group slow on mac

    Scheduled Pinned Locked Moved Developers' Forum
    48 Posts 7 Posters 17.0k Views 7 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • D Offline
      driven
      last edited by

      @dan rathbun said:

      Also, note. When "MaxUndo" is 0, calling Sketchup.send_action("editUndo:") still returns true, but nothing happens. (At least it does not BugSplat, which I did fear.)

      One thing I have found when modifying NIB files, is you often need to save, open/close SU then re-save 'manual' preference list changes, to clear SU's cache. Not sure if it's the same with coded writes and maybe it's only the SU ones that are cached?
      john

      learn from the mistakes of others, you may not live long enough to make them all yourself...

      1 Reply Last reply Reply Quote 0
      • Dan RathbunD Offline
        Dan Rathbun
        last edited by

        @driven said:

        ... which is much slower than putting it in the langhandler (which I thought would have a big overhead) ...

        The LanguageHandler class has nothing to do with this subject (speed & groups.) It's just a wrapper for a Hash, that has English (the keys,) strings translated to the user's local language.

        Read the "langhandler.rb" file in the "Tools" dir, and you'll see it's quite simple. (I don't use this class, since it defaults to using the "Resources" path, and it's much simplier to just use plain old Hash of my own (which can be loaded from a UTF-8 encoded file.)

        I'm not here much anymore.

        1 Reply Last reply Reply Quote 0
        • Dan RathbunD Offline
          Dan Rathbun
          last edited by

          For version 8.0M2,
          @unknownuser said:

          (http://support.google.com/sketchup/bin/static.py?hl)":1pr50735]SketchUp Writer C++ API: In earlier versions, ISketchUpGroup::CreateGroup became slower each time it was called. This shouldn't slow down any longer.

          I would think that this fix was added into the application code as well.

          @Guy: Is your friend's Mac running Sketchup version 8.0M2 ??

          I'm not here much anymore.

          1 Reply Last reply Reply Quote 0
          • G Offline
            GWD
            last edited by

            @dan rathbun said:

            For version 8.0M2,
            @unknownuser said:

            (http://support.google.com/sketchup/bin/static.py?hl)":100134bg]SketchUp Writer C++ API: In earlier versions, ISketchUpGroup::CreateGroup became slower each time it was called. This shouldn't slow down any longer.

            I would think that this fix was added into the application code as well.

            @Guy: Is your friend's Mac running Sketchup version 8.0M2 ??

            We use on Mac and PC the latest version from google's website. (PC 8.0.11752/MAC 8.0.11.751)

            I did some more testing:

            model = Sketchup.active_model
            entities = model.entities
            puts '- Start test1 add_group bug on MAC -'
            start = Time.now
            for n in 1..1000 do #changed this setting for the testing
            	g = entities.add_group
            	g.name = n.to_s
            	point1 = Geom;;Point3d.new(n*10,0,0)
            	c = g.entities.add_cpoint point1
            end
            puts 'Total time; ' + (start - Time.now).to_s  
            

            Results: bugMAC.JPG

            At this moment we use a workaround. Place the groups in a new model (use the multiple documents on MAC), make a component of all the groups. Save this component and insert it in the model and explode it. The biggest problem of this workaround is that it's impossible to close the new temporary model with ruby. A other problem is that is still a lot slower than on PC.
            Anybody a solution?

            1 Reply Last reply Reply Quote 0
            • Dan RathbunD Offline
              Dan Rathbun
              last edited by

              WoW! Excellent test report. Shows that the Mac still has a problem.

              I wonder if the difference has to do with Ruby.? The Mac is still running the initial release of v1.8.5, and the PC was updated to v1.8.6-p287.

              There is a thread on how to point the symbolic references for Sketchup Ruby to a "normal" full Ruby install elesewhere on the Mac's harddrive. (You need to backup the current links, so you can switch back if necessary. Perhaps a shell script?)

              I'd be interested in seeing the comparison for the Mac, running v1.8.5-p0 and v1.8.6-p287, ... (and perhaps even the latest patchlevel for v1.8.7)

              I'm not here much anymore.

              1 Reply Last reply Reply Quote 0
              • G Offline
                GWD
                last edited by

                @dan rathbun said:

                WoW! Excellent test report. Shows that the Mac still has a problem.

                I wonder if the difference has to do with Ruby.? The Mac is still running the initial release of v1.8.5, and the PC was updated to v1.8.6-p287.

                There is a thread on how to point the symbolic references for Sketchup Ruby to a "normal" full Ruby install elesewhere on the Mac's harddrive. (You need to backup the current links, so you can switch back if necessary. Perhaps a shell script?)

                I'd be interested in seeing the comparison for the Mac, running v1.8.5-p0 and v1.8.6-p287, ... (and perhaps even the latest patchlevel for v1.8.7)

                And here are the results for ruby 1.8.7 on mac:

                100 - 0.58 sec
                200 - 1.69 sec
                400 - 10.55 sec
                600 - 33.39 sec
                1000 - 147 sec

                Almost no difference with ruby 1.8.5 😞

                1 Reply Last reply Reply Quote 0
                • Dan RathbunD Offline
                  Dan Rathbun
                  last edited by

                  Bummer... definately the problem is in the C++ code.

                  I'm not here much anymore.

                  1 Reply Last reply Reply Quote 0
                  • J Offline
                    jhauswirth
                    last edited by

                    Looking at the add_group Ruby code, its the same on both platforms.
                    One reason (don't know if this is true) it could be slower on the Mac
                    is the notifications that are sent around could be updating the Mac
                    UI, like the component browser. This may be more efficiently done on
                    the PC.

                    Also, the same code (duplicate code/cut-n-pasted it looks like) that
                    I fixed in the C++ API was also being used in the Ruby code.
                    The bug report only mentioned the C++ API, so that's what got fixed.

                    1 Reply Last reply Reply Quote 0
                    • thomthomT Offline
                      thomthom
                      last edited by

                      @jhauswirth said:

                      Looking at the add_group Ruby code, its the same on both platforms.
                      One reason (don't know if this is true) it could be slower on the Mac
                      is the notifications that are sent around could be updating the Mac
                      UI, like the component browser. This may be more efficiently done on
                      the PC.

                      I have noticed that if you use Sketchup.status_text within a loop it will be very slow under OSX. It seems that the UI is forcefully freshened all the time, while on Windows you get "white-out" and the UI stops updating - but completes the loop much much faster.

                      But if it is the UI that slows things down, then running the test with start_operation and disable_ui argument set to true, should show a good performance increase, right?

                      Thomas Thomassen — SketchUp Monkey & Coding addict
                      List of my plugins and link to the CookieWare fund

                      1 Reply Last reply Reply Quote 0
                      • Dan RathbunD Offline
                        Dan Rathbun
                        last edited by

                        @John: thanks for taking a look at this, and "weighing in."

                        @GWD: Are all these groups to be added REALLY have all the same objects (like the example,) and just have a different location (transform) ?

                        I'm not here much anymore.

                        1 Reply Last reply Reply Quote 0
                        • G Offline
                          GWD
                          last edited by

                          @dan rathbun said:

                          @John: thanks for taking a look at this, and "weighing in."

                          @GWD: Are all these groups to be added REALLY have all the same objects (like the example,) and just have a different location (transform) ?

                          Dan,

                          No this is just a quick test that reproduce the problem. We have at this moment 2 totaly different script which have this problem.

                          1 Reply Last reply Reply Quote 0
                          • G Offline
                            GWD
                            last edited by

                            @thomthom said:

                            @jhauswirth said:

                            Looking at the add_group Ruby code, its the same on both platforms.
                            One reason (don't know if this is true) it could be slower on the Mac
                            is the notifications that are sent around could be updating the Mac
                            UI, like the component browser. This may be more efficiently done on
                            the PC.

                            I have noticed that if you use Sketchup.status_text within a loop it will be very slow under OSX. It seems that the UI is forcefully freshened all the time, while on Windows you get "white-out" and the UI stops updating - but completes the loop much much faster.

                            But if it is the UI that slows things down, then running the test with start_operation and disable_ui argument set to true, should show a good performance increase, right?

                            I tested it with start_operation and it as no effect!

                            1 Reply Last reply Reply Quote 0
                            • G Offline
                              GWD
                              last edited by

                              I just did some testing with adding components instead of groups (see script below). And the result is shokking. Placing 600 component give about the same time as the 600 groups 0.7 sec on PC and 27 sec on MAC. BUT after the script ended the MAC keep on showing the busy icon for very long time. More than 5 minutes (then i killed sketchup). I did the same test on mac with different number of components and this are the results:

                              50 components 0.29 sec running script 17 sec busy icon after script
                              100 components 0.85 sec running script 35 sec busy icon after script
                              200 components 3.8 sec running script 2 min 25 sec busy icon after script
                              300 components 7.6 sec running script more than 5 min sec busy icon after script
                              600 components 27 sec running script more than 5 min busy icon after script

                              require 'sketchup'
                              UI.menu("PlugIns").add_item("bugMAC Test2") {
                              model = Sketchup.active_model
                              entities = model.entities
                              puts '- Start test1 add_group bug on MAC -'
                              start = Time.now
                              for n in 1..600 do 
                              	newdef = model.definitions.add		
                              	newdef.name = n.to_s
                              	point1 = Geom;;Point3d.new(n*10,0,0)
                              	newdef.entities.add_cpoint point1 
                              	pt = Geom;;Point3d.new 0,0,0
                              	trans = Geom;;Transformation.new pt
                              	i = model.entities.add_instance(newdef, trans) 
                              	i.make_unique	
                              end
                              puts 'Total time; ' + (start - Time.now).to_s  
                              } 
                              
                              1 Reply Last reply Reply Quote 0
                              • G Offline
                                GWD
                                last edited by

                                No solutions?

                                1 Reply Last reply Reply Quote 0
                                • Dan RathbunD Offline
                                  Dan Rathbun
                                  last edited by

                                  Not surprising that it takes the same time to add groups and components, because a group is a special type of component, that also has a ComponentDefinition (whose group? attribute is true.)

                                  The extra time, likely comes from adding all that new stuff to the Component browser. (guessing, here.)

                                  Close any unneeded toolwindows, especially the Object browser. And use an operation with the disable_ui flag set.

                                  That's all we can say. I guess John indicated that there were UI issues with the Mac edition. (I'm not sure if he said the SDK updates did, or did not make it into the last build... he was a bit ambiguous. But internal politics, ya know....)

                                  You can always file a bug report. The more people that scream...

                                  I'm not here much anymore.

                                  1 Reply Last reply Reply Quote 0
                                  • G Offline
                                    GWD
                                    last edited by

                                    Dan, where can i post a bug report?

                                    1 Reply Last reply Reply Quote 0
                                    • Dan RathbunD Offline
                                      Dan Rathbun
                                      last edited by

                                      @gwd said:

                                      Dan, where can i post a bug report?

                                      Open Sketchup... pulldown the Help menu, choose "Contact Us" ...

                                      ... your browser will open, to the Google Sketchup Contact page.

                                      Use the "Bug Report" link, to bring up the form, and fill it out.

                                      I'm not here much anymore.

                                      1 Reply Last reply Reply Quote 0
                                      • G Offline
                                        GWD
                                        last edited by

                                        I submitted a bug report.

                                        1 Reply Last reply Reply Quote 0
                                        • Dan RathbunD Offline
                                          Dan Rathbun
                                          last edited by

                                          Good news for Mac users. This issue has been reported as fixed in the 8.0M3 release.

                                          see: SketchUp Release Notes

                                          and get the latest MR at the SketchUp Downloads page.

                                          I'm not here much anymore.

                                          1 Reply Last reply Reply Quote 0
                                          • T Offline
                                            th3lurker
                                            last edited by

                                            I would have loved it if they fixed add_face too. I've found workarounds, so i don't need it now, but still.

                                            1 Reply Last reply Reply Quote 0
                                            • 1
                                            • 2
                                            • 3
                                            • 2 / 3
                                            • First post
                                              Last post
                                            Buy SketchPlus
                                            Buy SUbD
                                            Buy WrapR
                                            Buy eBook
                                            Buy Modelur
                                            Buy Vertex Tools
                                            Buy SketchCuisine
                                            Buy FormFonts

                                            Advertisement