GotSpeech.NET

The online community for Microsoft Speech Server developers
Welcome to GotSpeech.NET Sign in | Join | Help
in Search
Computer-Talk

Long compile times

Last post 11-21-2008, 12:22 PM by Anthony. 11 replies.
Sort Posts: Previous Next
  •  04-22-2008, 9:38 AM 5277

    Long compile times

    Is anyone alse experiencing long compile times?

    I have a solution  that has 10 projects and it is taking 10 minutes to compile the app.

    Any suggestions?


    Marshall Harrison
    Microsoft MVP, Office Communications Server


    www.GoldSys.com
    W: 303.447.2774
    H: 904.342-6205

    the gotspeech guy
  •  04-22-2008, 11:01 AM 5280 in reply to 5277

    Re: Long compile times

    Are there any prompt projects in there?  We keep those separate and only build them when we change prompts, since they take so long.
  •  04-22-2008, 11:40 AM 5284 in reply to 5280

    Re: Long compile times

    Using Wave file sinstead of prompt database.
    Marshall Harrison
    Microsoft MVP, Office Communications Server


    www.GoldSys.com
    W: 303.447.2774
    H: 904.342-6205

    the gotspeech guy
  •  04-22-2008, 12:21 PM 5285 in reply to 5284

    Re: Long compile times

    Hello Marshall,

    I had a similar issue with the project I’m working on. The think ballooned up and got huge on me.

    I was able to refactor the code and abstracted the stable parts into separate projects what did not
    need to be recompiled every time.

    I had a lot of settings to use with logic for declarative rule conditions.
    I ended up packing them into classes into business objects in new projects then just ref these dlls.

    I was able to cut my recompile time to about 1/10th what I was having to deal with.

     

  •  04-22-2008, 12:51 PM 5286 in reply to 5285

    Re: Long compile times

    This sounds similiar to what I have though I'm not using rule conditions.

    The business logic ii in separate classes one per project. The projects are part of the solution but they compille quickly. It is only when I the the main project (that references the business projects) does it take a long time.

     


    Marshall Harrison
    Microsoft MVP, Office Communications Server


    www.GoldSys.com
    W: 303.447.2774
    H: 904.342-6205

    the gotspeech guy
  •  04-22-2008, 1:53 PM 5288 in reply to 5286

    Re: Long compile times

    roger that. my BL is huge as I'm using Speaker Verification to Identify the caller.

     

  •  05-09-2008, 10:25 AM 5470 in reply to 5288

    Re: Long compile times

    My problem turned out to be nesting of SpeechSequenceActivity. You can't nest them without causing some performance issues and long load/compile times.

    I'll blog this subject soon.


    Marshall Harrison
    Microsoft MVP, Office Communications Server


    www.GoldSys.com
    W: 303.447.2774
    H: 904.342-6205

    the gotspeech guy
  •  10-03-2008, 12:12 PM 7198 in reply to 5470

    Re: Long compile times

    Firstly I'd like to apologise for my lack of responsiveness on this issue.  There have been several threads on this forum about it, and it is clearly a major issue for those affected.  I don't have anything new in this post - all the information is already contained in this forum - however I'd like to pull it all together and start a discussion to fill in some of the missing details.

    To that end, let me reiterate the problem.  When workflows get large we see:

    1. Long load times into VS (minutes) 
    2. Long compile times (minutes)
    3. Long load times at runtime (seconds)

    For (1) the solutions are:

    1. Split the workflow into "subflows", either SpeechSequenceActivity or SpeechSequentialWorkflowActivity and
    2. Apply this attribute to SpeechSequenceActivity to avoid it being expanded in parent activities:[Designer(typeof(ActivityDesigner))]

    For (2) the solutions is also to split the workflow into subflows and only compiling the part your currently working on.  Question - does using SpeechSequentialWorkflowActivity instead of SpeechSequenceActivity reduce the compile time of the top-level workflow?

    For (3) the solutions are either:

    1. Use SpeechSequentialWorkflowActivity instead of SpeechSequenceActivity or
    2. Use SpeechSequenceActivity but avoid nesting too deeply.

     

    In thread 5448 (http://gotspeech.net/forums/thread/5448.aspx), Marshall Harrison reckons not to go deeper than 2 or 3 nested SpeechSequeunce activities, whereas Brian Campbell is 5 levels with no problems.  I've created an experimental workflow with 200 nested SpeechSequeunce activities with no noticiable perf problems compiling or running (though it takes an age to render, so is completely unmanageable).  My workflow has nothing but SpeechSequeunce. 

    The point I am making here is that it is not SpeechSequeunce alone that is the problem, it's also whatever else is in the workflow - i.e. how wide it is as well as how deep. 

    Question - I'd like to find out from you some data points.  What size workflows do you have?  And what are your compile times & runtime load times?  Please document size as :

    • total number of activities
    • total depth (i.e. number of activities between the topmost and bottommost)
    • how many: SpeechSequence, While and IfElse activities.

    Our understanding is that cloning is a big culprit here.  If that is the case, then the problems won't be limited to SpeechSequeunce - they would also affect While and IfElse.  Question - given a problematic workflow, are there locations in the workflow where, if you add 1 SpeechSequence, it has a significant detrimental impact?  If, instead, you add an IfElse, does it have the same detrimental impact?


    This posting is provided "AS IS" with no warranties, and confers no rights. Use of included script samples are subject to the terms specified at http://www.microsoft.com/info/cpyright.htm
  •  10-06-2008, 11:11 AM 7203 in reply to 7198

    Re: Long compile times

    Hi Anthony,

    Here are some details from our application that has been problematic. 

    Main workflow and 14 custom SpeechSequenceActivity

    • main workflow - 175 activities - 4 SpeechSequence activities and 17 ifElse activities
    • techsupport engine custom activity - 270 activities - 9 SpeechSequence activities and 28 ifElse activities
    • billing custom activity - 195 activites - 2 SpeechSequence activities, 28 ifElse activities and 2 while activites
    • entitlement custom activity - 123 activites - 5 SpeechSequence activities and 18 ifElse activities
    • transfer custom activity - 52 activities and 7 ifElse activities
    • password reset activity - 40 activities and 6 ifElse activities
    • the rest are small with ~5 activities and maybe an ifElse activity

    The custom activities are nested at max 3 deep.  The most complex nesting occurs with the main workflow calling the billing custom activity and then the billing custom activity calling the entitlement activity.  There are several places where the 3rd level deep in the nesting is a call to one of the smaller custom activities.

    We never encountered compile times more than a minute but starting the debugger would often take 2-3 minutes to start and then 3-4 minutes to initiate the first phone call.

    As for performance, we can't get more than about 60 calls on the server until the caller starts to hear choppy speech.  I don't have any information on the runtime load times.

    I hope this is helpful.  Please let me know if there is any additional information that I can provide.

    Thanks,
    Brian

  •  11-05-2008, 4:21 PM 7408 in reply to 7203

    Re: Long compile times

    My application compiles pretty quickly, but when I try to run it in debug mode it takes a very long time to connect.  Is this related to nesting SpeechSequenceActivities also?
  •  11-10-2008, 11:08 AM 7443 in reply to 7408

    Re: Long compile times

    Do you observe this long delay every time you start debugging, or just the 1st?  If it's just the 1st time, then it is most likely due to starting up TAH and your application inside a potentially new instance of w3wp, and starting Speech Server if it is not already running.

    If you observe a long delay between pressing "call" and executing the 1st activity, then this could be caused by validation; this isn't affected by the number of SpeechSequence activities, rather it's affected by the total number of all activities.


    This posting is provided "AS IS" with no warranties, and confers no rights. Use of included script samples are subject to the terms specified at http://www.microsoft.com/info/cpyright.htm
  •  11-21-2008, 12:22 PM 7544 in reply to 7443

    Re: Long compile times

    Cross reference - more discussion on this topic has started on this thread: Speech Application Design
    This posting is provided "AS IS" with no warranties, and confers no rights. Use of included script samples are subject to the terms specified at http://www.microsoft.com/info/cpyright.htm
View as RSS news feed in XML