LINUX.ORG.RU

История изменений

Исправление cvv, (текущая версия) :

Переделал на:

    void SampleProcessor::ComputeGpioVal(unsigned int gpioVal, string& gpioStr)          
    {  
        unsigned int i;

        i = 1 << (sizeof(gpioVal) * 8 - 1);

        gpioStr.clear();
        gpioStr.reserve(5);
        while (i > GPIO_MASK_LIMIT)
        {  
            if (gpioVal & i)
                gpioStr += "1";
            else
                gpioStr += "0";
            i >>= 1;
        }
    }

получил уменьшение общего времени выполнения этой ф-и с 35% до 21%. А также malloc() улетел вниз по количеству вызовов и соответсвенно потреблению ресурсов.

Исходная версия cvv, :

Переделал на:

    void SampleProcessor::ComputeGpioVal(unsigned int gpioVal, string& gpioStr)          
    {  
        unsigned int i;

        i = 1 << (sizeof(gpioVal) * 8 - 1);

        gpioStr.clear();
        gpioStr.reserve(5);
        while (i > GPIO_MASK_LIMIT)
        {  
            if (gpioVal & i)
                gpioStr += "1";
            else
                gpioStr += "0";
            i >>= 1;
        }
    }

получил уменьшение общего времени выполнения этой ф-и с 35% до 21%.