Tech Off Thread

1 post

Forum Read Only

This forum has been made read only by the site admins. No new threads or comments can be added.

Compiler, branch prediction, object-oriented design and JavaScript !!

Back to Forum: Tech Off
  • User profile image

    When the complier is optimizing the C++ code, branch prediction due to logical construct (if-else, switch-case, ? : ternary operator) brings a major challenge. Changing the problem to minimize its effect results in significant optimized code.


    Now, JavaScript is a "multi-paradigm language", but majorly conceived as functional language. Do we have similar branch prediction challenges when we are using if-else? And does the JS engines (Charka for IE) optimization teams face same challenges when dealing with if-else?


    OAN: According to object-oriented designs and patterns, (if we can and where we can) we should avoid if-else in favor of polymorphism (or with event based programming). If we are able to solve if-else problem using polymorphism, would it be as optimized as a code without branching?


    Now back to Charka, if the compiler/interpreter guys have same branching challenges in JavaScript, can we (the developers) convert the following construct:


    if(ConditionX) {
        statementX2;  //multiple statements in the block
    } else {
         statementY1;  // single statement in the block




    ((ConditionX) && ((function()  {
    })() || true)) || (statementY1 || true);


    to avoid branch prediction altogether?


    Is it universally valid for all scenarios?


    If the above perceptions are true, can we make the compiler to always see those if-else constructs as chained logical operations?


    Can we do the same in other languages compilers; C/C++/C#?

Conversation locked

This conversation has been locked by the site admins. No new comments can be made.