SapphireSteel Forum
Welcome, Guest. Please login or register.
May 22, 2013, 03:16:35 PM

Login with username, password and session length
Search:     Advanced search
Welcome to the SapphireSteel forum - for discussion of the Ruby In Steel and Amethyst IDEs
3884 Posts in 800 Topics by 669 Members
Latest Member: m
* Home Help Search Login Register
+  SapphireSteel Forum
|-+  General
| |-+  Ruby In Steel
| | |-+  Imposible to load large solutions with many files
« previous next »
Pages: [1] Print
Author Topic: Imposible to load large solutions with many files  (Read 3477 times)
mvaccaro
Newbie
*
Posts: 4


« on: December 12, 2007, 11:04:49 AM »

Hi,
        I'm using VS2005 and the 30-day trial Sapphire developer version.
        When I try to open large projects (a lot of files) VS locks up and it takes like 30 minutes for the project to open (project is 2000 files aprox).
        I have a 2.2Ghz processor and 2gb of ram.
     
        I read http://sapphiresteel.com/forum/index.php?topic=144.msg534#msg534, it's exactly what happens to me.

        I also created a C# solution and included the same folder with the same amount of files and it took 20 seconds to load all the files.
        So there is something that the loading project proccess for ruby is doing that is killing my machine.
        I also tried on different machines and the same happens.

Regards,
                 Marcelo




« Last Edit: December 12, 2007, 11:12:17 AM by mvaccaro » Logged
Huw Collingbourne
Administrator
Hero Member
*****
Posts: 934



« Reply #1 on: December 12, 2007, 12:58:46 PM »

Thanks for the report. I've tried to duplicate this but haven't succeeded. I created a solution with 2,125 Ruby files in 314 folders. It takes about 30 seconds to load and about 20 seconds to synchronize. Is there anything else that might be 'special' about your solution? For example, does it contain multiple projects (if so, how many?); are the files spread across multiple disks or over a network?

Did you check this thread ( http://forums.asp.net/p/958561/1411577.aspx ) which is the one that provided the solution to the problem reported by another user some time ago? When unexpected delays like this have been reported previously they seem to have been connected to a link to a 'remote' (unavailable) file or project as discussed in that thread. I'd be grateful if you would check if that is the problem and let us know. See also this thread: http://sapphiresteel.com/forum/index.php?topic=97.0

best wishes
Huw

Logged
mvaccaro
Newbie
*
Posts: 4


« Reply #2 on: December 12, 2007, 02:56:58 PM »

The solution only has one project and the solution is on the local disk, there is no remote file.

I had some time so I did some benchmarks. I created a project with empty text files.

Time to sinchronize or add folders for the first time      

                             Ruby                         C#
1000 files project   36secs                   25secs
2000 files project   2min 40secs           1min 14secs
3000 files project   5mins 59secs          2min 50secs
5000 files project   16mins 36secs        7mins 26secs

Time to open the solution      

                                Ruby                    C#
1000 files project   10secs                   1sec
2000 files project   36secs                   1sec
3000 files project   1min 26secs           2secs
5000 files project   6mins 02 secs        4secs

I'm ok if the plug-in takes twice as much as C# to generate the project, I mean this is done only once.
But for 5000 files it takes 6mins while the same solution in C# takes 4secs, and this is a "fake" project with 5 folders with 1000 files each.
When I tested this with a real project (7000files and 2000 folders) with more amount of folders it took about 30mins to open the solution when the same project created in C# took 6 secs to open.

I have all the test solutions I used so send me an email if you want me to send them to you.

You have no idea how much I love being able to drag and drop Html controls into the Html designer with Ruby, but while it takes that long to open the solution for my large project, it is becoming unusable for me :-((

Regards,

            Marcelo
« Last Edit: December 12, 2007, 03:04:36 PM by mvaccaro » Logged
Huw Collingbourne
Administrator
Hero Member
*****
Posts: 934



« Reply #3 on: December 12, 2007, 03:18:18 PM »

I'd be grateful if you could mail us the solutions to support (at) sapphiresteel (dot) com.

Can you also check the CPU usage when the solution is opening. Is this close to 100%?

best wishes
Huw
Logged
mvaccaro
Newbie
*
Posts: 4


« Reply #4 on: December 12, 2007, 03:29:55 PM »

Sending the solutions right now.

Yes, the cpu usage is 99% and the process responsible is devenv.exe (Visual Studio).

Let me know if you need more info.

Regards,
              Marcelo
Logged
mvaccaro
Newbie
*
Posts: 4


« Reply #5 on: December 12, 2007, 03:36:46 PM »

BTW, are you planing to render partials on the Visual Web designer?
Logged
Huw Collingbourne
Administrator
Hero Member
*****
Posts: 934



« Reply #6 on: December 12, 2007, 03:52:39 PM »

You'll be able to edit full pages comprising layout/view/partials. The visual design tools will initially support Rails 1.2 and we'll follow this up with Rails 2.0 support shortly thereafter. Standard code editing (as in the current release or RiS) will support both Rails 1.2 and Rails 2.0 of course. The Workbench will be an additional (optional) development environment which you can use or not as you prefer. We'll be previewing the Visual Rails Workbench on the blog shortly.

best wishes
Huw

p.s. We'll get back to you re the project loading problem once we've had a chance to test out the solution you are sending us.
Logged
Dermot
Administrator
Hero Member
*****
Posts: 1005


« Reply #7 on: December 14, 2007, 07:56:34 AM »

Just for the record, I've fixed the slow loading & re-syncing. The figures are these:

On a 5000 file solution: before I made the changes, it took 128 seconds to load the solution; afterwards 7 seconds. It now also scales linearly with the size of the project.

On synchronisation: it took 220 seconds to sync before I made the changes, afterwards, it took 4 seconds.

The original problem was that the base loading code (Microsoft’s) searched the solution hierarchy tree linearly across a branch and recursively down a branch – just about the worst way to do it. I’ve replaced that with a fast Dictionary hash.

The machine I use is a Core Duo 2.4 GHz with 3GB of memory.

The changes are available in a test version (v373) - we'll release the speeded up version fully shortly.

Dermot
Logged
Pages: [1] Print 
« previous next »
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006-2009, Simple Machines LLC Valid XHTML 1.0! Valid CSS!