On 02/19/2014 10:18 PM, Vladimir wrote:

>> Full version my very simplified example such task:
>> https://gist.github.com/Vladimir-Z/1a1755ce91cb0e7636b5

Notes:

* It is "process", not "proccess". :)

* isUseField is not used by proccessRowTemplate(). Removing it from the parameter list (and doing necessary modifications elsewhere) reduced the optimized time from 18ms to 15ms for me.

* Applied ^^ operator for proccessRowTemplate as well. (No effect on performance.)

* I liked the simple template syntax for proccessRowTemplate:

int proccessRowTemplate(size_t optionVariant)(in Row table)
{
    int sum = 0;
    foreach(size_t i; StaticRange!(Row.numberField))
    {
        static if (optionVariant & 1<<i)
        {
            sum += table.Fields[i] ^^ 2 - i;
        }
    }
    return sum;
}

Results on my system after that change:

Process table result: 142459540
Simple processing: 35 ms
Process table result: 142459540
Template processing: 15 ms

Ali

Reply via email to