История изменений
Исправление 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%.