About efficencies



  • I just talked with a guy who is the CEO of a small company dealing with ERP software.

    The expected usage of the software is ~70-80 users.

    He went on & on about efficencies and how it is important to be able to do things fast.

    Then he dropped a gem: he had fired a programmer that used ASP.Net's
    labels instead of coding it up in HTML since the object creation caused
    a considerable slowdown.

    Anyone can comment on that? It seem ludicrous to me,



  • @Ayende Rahien said:

    I just talked with a guy who is the CEO of a small company dealing with ERP software.

    The expected usage of the software is ~70-80 users.

    He went on & on about efficencies and how it is important to be able to do things fast.

    Then he dropped a gem: he had fired a programmer that used ASP.Net's
    labels instead of coding it up in HTML since the object creation caused
    a considerable slowdown.

    Anyone can comment on that? It seem ludicrous to me,




    Well, he should have been fired. It's clearly obvious he should have been using JavaScript and XML to do the work.



  • @Ayende Rahien said:

    I just talked with a guy who is the CEO of a small company dealing with ERP software.

    The expected usage of the software is ~70-80 users.

    He went on & on about efficencies and how it is important to be able to do things fast.

    Then he dropped a gem: he had fired a programmer that used ASP.Net's
    labels instead of coding it up in HTML since the object creation caused
    a considerable slowdown.

    Anyone can comment on that? It seem ludicrous to me,


    Yes, that's ludicrous.  While there's a lot of "obvious" things
    you should keep in mind to increase performance, object creation time
    simply isn't one of them.  Premature optimization is the root of
    all evil.



    This CEO is neither technically nor socially competent.



  • Of course, do the math.   80 users.   By not
    creating this object the page comes up a couple nanoseconds
    sooner.  Lets call it 50.   Lets assume these users do
    nothing else but call up this page all day, and make changes (as
    opposed to using the software to make the company money).  
    Each change takes 10 seconds.    Each person is working
    a 12 hour day, 6 days a week. 



    If page loads were instant they could do 2,073600 changes per
    week.   However adding 50 nanoseconds to load time brings
    that number down to 2,073,599.989632!     I only
    takes 2 years before they have lost one full change (10
    seconds)!   Clearly it is better to pay a programmer to write
    HTML by hand.  It would take a good programmer 30 minutes extra to
    do the work by hand, which works out to 180 years to break even, after
    that it is all money in the bank.  But wait, if we assume these
    are highly paid upper management ERP users that make 4 times as much as
    the programmer (after overtime), that is only 45 years to break
    even.   How can you loose?



    Of course page load times are not instant, so my numbers are not
    correct, but you can see the trend.   Someone should point
    out that instead of a web interface he can get his ERP implemented in
    ASICs, which  would be even faster, getting the page load time
    down to faster than monitor refresh rates.  This would clearly save
    a ton of money over the next 30,000 years - assuming the software needs
    no changes in that time.



  • Absolutely ridiculous.

    The object creation overhead for a few labels is insignificant compared with the rest of the application.



    I he is so concerned about efficiency, he should focus on the output
    caching scheme. Chances are a lot of the pages (or parts) can be
    cached, so objects get created far less frequently.



    But, is this really what a CEO should be doing?



  • He's right.  Once everyone realizes this, the whole OOP fad will be over.  <jk>



  • but javascript doesn't support goto.



  • @Ayende Rahien said:

    I just talked with a guy who is the CEO of a small company dealing with ERP software.

    The expected usage of the software is ~70-80 users.

    He went on & on about efficencies and how it is important to be able to do things fast.

    Then he dropped a gem: he had fired a programmer that used ASP.Net's
    labels instead of coding it up in HTML since the object creation caused
    a considerable slowdown.

    Anyone can comment on that? It seem ludicrous to me,




    Name of company please



  • @hank miller said:

    Of course, do the math.   80 users.   By not
    creating this object the page comes up a couple nanoseconds
    sooner.  Lets call it 50.




    Waiiiiitasecond! Since your whole argument stands and falls with this
    number, I'd like to see some justification for that estimate! Looking at

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndotnet/html/fastmanagedcode.asp
    , it seems to be about right for a current CPU and relatively simple objects, but was that really an informed guess or just luck? And are ASP.NET labels relatively simple? It's a "framework", so seemingly simple actions could in fact cause all kinds of behind-the-scenes activity.



  • @John Smallberries said:

    But, is this really what a CEO should be doing?

    No, but it's not surprising.  After all, he has to be doing something besides playing golf with the board members and customers.  [li]



  • @brazzy said:

    @hank miller said:
    Of course, do the math.   80 users.   By not creating this object the page comes up a couple nanoseconds sooner.  Lets call it 50.


    Waiiiiitasecond! Since your whole argument stands and falls with this number, I'd like to see some justification for that estimate! Looking at http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndotnet/html/fastmanagedcode.asp, it seems to be about right for a current CPU and relatively simple objects, but was that really an informed guess or just luck? And are ASP.NET labels relatively simple? It's a "framework", so seemingly simple actions could in fact cause all kinds of behind-the-scenes activity.

     

    Lets see... the label has to be created... The page has to be parsed (which it will be anyway, even without the labels). The proper value's are to be inserted for the labels... I think data transport would still take longer than any of this, except maybe for the very first time. But the very first time would be slow without labels too.

    On with the labels!

    Drak



  • Hey!

    You're woring at my last workplace I think.

    He worried about the efficency of string concatination using the + (& for you VB users) operator, but wanted to use late binding [+o(] all thru the data model.



  • @dhromed said:

    but javascript doesn't support goto.




    No, but you can get creative with it to do just that.  Like for
    example, call functions that you will never plan on reusing, and ignore
    their return values, and intersperce them within your code
    haphazardly.  For instance:


    // I'm going to dump everything within "main" and ignore any

    // procedural programming or modern techniques and guidelines.

    // But since I'm the kinda guy who uses GOTOs, I probably don't

    // comment my code either, so ignore this comment.

    function main() {

        //Do stuff

        // Do more stuff



        // Do other stuff that will probably won't be called



        do_even_more_stuff = new function() {

           // find something to do

        }



        the_end = new function () {

            // do some final stuff

        }



        Goto( do_even_more_stuff );

        Goto( the_end );

    }



    function Goto ( func_ref ) {

        call( func_ref );

    }




  • @DZ-Jay said:

    @dhromed said:
    but javascript doesn't support goto.




    No, but you can get creative with it to do just that.  Like for
    example, call functions that you will never plan on reusing, and ignore
    their return values, and intersperce them within your code
    haphazardly.  For instance:


    // I'm going to dump everything within "main" and ignore any

    // procedural programming or modern techniques and guidelines.

    // But since I'm the kinda guy who uses GOTOs, I probably don't

    // comment my code either, so ignore this comment.

    function main() {

        //Do stuff

        // Do more stuff



        // Do other stuff that will probably won't be called



        do_even_more_stuff = new function() {

           // find something to do

        }



        the_end = new function () {

            // do some final stuff

        }



        Goto( do_even_more_stuff );

        Goto( the_end );

    }



    function Goto ( func_ref ) {

        call( func_ref );

    }






    Somebody ought to write a book called "Fatal JavaScript: Things you can
    do with JavaScript that will likely result in you getting killed by
    your peers"




  • @KissTheCode said:

    He worried about the efficency of string
    concatination using the + (& for you VB users) operator, but
    wanted to use late binding [+o(] all thru the data model.




    String concatenation DOES cause gigantic performance problems in many
    environments (e.g. Java) when it's used to build large strings in small
    increments. It's a one of the standard examples for native coding
    leading to big problems. Admittedly, a lot of people don't really
    understand this and think it always causes perfromance problems.



    As for late binding, it can cause some unexpected delays, but only when
    stuff is used for the first time, so it's pretty irrelevant for
    performance.



  • @Drak said:

    Lets see... the label has to be created... The
    page has to be parsed (which it will be anyway, even without the
    labels). The proper value's are to be inserted for the labels... I
    think data transport would still take longer than any of this, except
    maybe for the very first time.





    You think that's all that happens - but can you really be certain?
    I sure wouldn't bet on it when a framework is involved. In fact, I
    would never bet on ANY performance estimation from anyone. The only
    really trustworty source of performance information is a profiler. Of
    course that also goes for the CEO, but we don't know whether his
    distaste for labels is really unfounded or not. It may well be that he
    was burned by some app where labels were abused and removing them
    actually caused a big performance gain. Of course even then it's a big
    WTF to fire someone over it without warning (if that's really what
    happened).


Log in to reply