Ejemplo n.º 1
0
void PrintAllocTimes()
{
	PrintOne( Malloc );
	PrintOne( Realloc );
	PrintOne( Free );
}
Ejemplo n.º 2
0
    void StringProfiler::PrintAll()
    {
        Output::Print(L"=============================================================\n");
        Output::Print(L"String Statistics\n");
        Output::Print(L"-------------------------------------------------------------\n");
        Output::Print(L"    Length 7bit ASCII 8bit ASCII    Unicode      Total %%Total\n");
        Output::Print(L" --------- ---------- ---------- ---------- ---------- ------\n");

        // Build an index for printing the histogram in descending order
        HistogramIndex index(&allocator, stringLengthMetrics.Count());
        uint totalStringCount = 0;
        stringLengthMetrics.Map([this, &index, &totalStringCount](unsigned int len, StringMetrics metrics)
        {
            uint lengthTotal = metrics.Total();
            index.Add(len, lengthTotal);
            totalStringCount += lengthTotal;
        });
        index.SortDescending();

        StringMetrics cumulative = {};
        uint maxLength = 0;

        for(uint i = 0; i != index.Count(); ++i )
        {
            uint length = index.Get(i);

            // UintHashMap::Lookup doesn't work with value-types (it returns NULL
            // on error), so use TryGetValue instead.
            StringMetrics metrics;
            if( stringLengthMetrics.TryGetValue(length, &metrics) )
            {
                PrintOne( length, metrics, totalStringCount );

                cumulative.Accumulate(metrics);
                maxLength = max( maxLength, length );
            }
        }

        Output::Print(L"-------------------------------------------------------------\n");
        Output::Print(L"    Totals %10u %10u %10u %10u (100%%)\n",
            cumulative.count7BitASCII,
            cumulative.count8BitASCII,
            cumulative.countUnicode,
            cumulative.Total() );

        if(discardedWrongThread>0)
        {
            Output::Print(L"WARNING: %u strings were not counted because they were allocated on a background thread\n",discardedWrongThread);
        }
        Output::Print(L"\n");
        Output::Print(L"Max string length is %u chars\n", maxLength);
        Output::Print(L"%u empty strings (Literals or BufferString) were requested\n", emptyStrings);
        Output::Print(L"%u single char strings (Literals or BufferString) were requested\n", singleCharStrings);
        if( this->embeddedNULStrings == 0 )
        {
            Output::Print(L"No embedded NULs were detected\n");
        }
        else
        {
            Output::Print(L"Embedded NULs: %u NULs in %u strings\n", this->embeddedNULChars, this->embeddedNULStrings);
        }
        Output::Print(L"\n");

        if(stringConcatMetrics.Count() == 0)
        {
            Output::Print(L"No string concatenations were performed\n");
        }
        else
        {
            Output::Print(L"String concatenations (Strings %u chars or longer are treated as \"Large\")\n", k_MaxConcatLength);
            Output::Print(L"   LHS +  RHS  SB    Concat   Buf  Other  Total\n");
            Output::Print(L"------ ------ ------ ------ ------ ------ ------\n");

            uint totalConcatenations = 0;
            uint totalConcatTree = 0;
            uint totalBufString = 0;
            uint totalCompoundString = 0;
            uint totalOther = 0;
            stringConcatMetrics.Map([&](UintUintPair const& key, const ConcatMetrics& metrics)
            {
                PrintOneConcat(key, metrics);
                totalConcatenations += metrics.Total();
                totalConcatTree += metrics.concatTreeCount;
                totalBufString += metrics.bufferStringBuilderCount;
                totalCompoundString += metrics.compoundStringCount;
                totalOther += metrics.unknownCount;
            }
            );
            Output::Print(L"-------------------------------------------------------\n");
            Output::Print(L"Total %6u %6u %6u %6u %6u\n", totalConcatenations, totalCompoundString, totalConcatTree, totalBufString, totalOther);
        }

        Output::Flush();
    }
Ejemplo n.º 3
0
static
void PrintResults(WORD Encoded[], icColorSpaceSignature ColorSpace)
{
    int i;

    switch (ColorSpace) {

    case icSigXYZData:
                    cmsXYZEncoded2Float(&xyz, Encoded);
                    PrintCooked("X", xyz.X * 100.); 
                    PrintCooked("Y", xyz.Y * 100.); 
                    PrintCooked("Z", xyz.Z * 100.);
                    break;

    case icSigLabData:
                    cmsLabEncoded2Float(&Lab, Encoded);
                    PrintCooked("L*", Lab.L); 
                    PrintCooked("a*", Lab.a); 
                    PrintCooked("b*", Lab.b);
                    break;

    case icSigLuvData:
                    PrintOne("L", Encoded[0]); 
                    PrintOne("u", Encoded[1]); 
                    PrintOne("v", Encoded[2]);
                    break;

    case icSigYCbCrData:
                    PrintOne("Y", Encoded[0]); 
                    PrintOne("Cb", Encoded[1]); 
                    PrintOne("Cr", Encoded[2]);
                    break;


    case icSigYxyData:
                    PrintOne("Y", Encoded[0]); 
                    PrintOne("x", Encoded[1]); 
                    PrintOne("y", Encoded[2]);
                    break;

    case icSigRgbData:
                    PrintOne("R", Encoded[0]); 
                    PrintOne("G", Encoded[1]); 
                    PrintOne("B", Encoded[2]);
                    break;

    case icSigGrayData:
                    PrintOne("G", Encoded[0]); 
                    break;

    case icSigHsvData:
                    PrintOne("H", Encoded[0]); 
                    PrintOne("s", Encoded[1]); 
                    PrintOne("v", Encoded[2]);
                    break;

    case icSigHlsData:
                    PrintOne("H", Encoded[0]); 
                    PrintOne("l", Encoded[1]); 
                    PrintOne("s", Encoded[2]);
                    break;

    case icSigCmykData:
                    Print100("C", Encoded[0]); 
                    Print100("M", Encoded[1]); 
                    Print100("Y", Encoded[2]); 
                    Print100("K", Encoded[3]);
                    break;

    case icSigCmyData:                        
                    Print100("C", Encoded[0]); 
                    Print100("M", Encoded[1]); 
                    Print100("Y", Encoded[2]); 
                    break;

    case icSigHexachromeData:
    case icSig6colorData:
                            
                    Print100("C", Encoded[0]); 
                    Print100("M", Encoded[1]); 
                    Print100("Y", Encoded[2]); 
                    Print100("K", Encoded[3]); 
                    Print100("c", Encoded[1]); 
                    Print100("m", Encoded[2]); 
                    break;

    default:

        for (i=0; i < _cmsChannelsOf(OutputColorSpace); i++) {
        
            char Buffer[10];
            sprintf(Buffer, "CHAN%d", i + 1);
            PrintOne(Buffer, Encoded[i]);           
        }   
    }



}