| Index: third_party/lzma/v4_65/files/CPP/7zip/Compress/LZMA_Alone/LzmaBenchCon.cpp
|
| diff --git a/third_party/lzma/v4_65/files/CPP/7zip/Compress/LZMA_Alone/LzmaBenchCon.cpp b/third_party/lzma/v4_65/files/CPP/7zip/Compress/LZMA_Alone/LzmaBenchCon.cpp
|
| deleted file mode 100644
|
| index b1c455e9784464e077f54af15fc2ed30be96116d..0000000000000000000000000000000000000000
|
| --- a/third_party/lzma/v4_65/files/CPP/7zip/Compress/LZMA_Alone/LzmaBenchCon.cpp
|
| +++ /dev/null
|
| @@ -1,311 +0,0 @@
|
| -// LzmaBenchCon.cpp
|
| -
|
| -#include "StdAfx.h"
|
| -
|
| -#include <stdio.h>
|
| -
|
| -#include "LzmaBench.h"
|
| -#include "LzmaBenchCon.h"
|
| -#include "../../../Common/IntToString.h"
|
| -
|
| -#if defined(BENCH_MT) || defined(_WIN32)
|
| -#include "../../../Windows/System.h"
|
| -#endif
|
| -
|
| -#ifdef BREAK_HANDLER
|
| -#include "../../UI/Console/ConsoleClose.h"
|
| -#endif
|
| -#include "../../../Common/MyCom.h"
|
| -
|
| -struct CTotalBenchRes
|
| -{
|
| - UInt64 NumIterations;
|
| - UInt64 Rating;
|
| - UInt64 Usage;
|
| - UInt64 RPU;
|
| - void Init() { NumIterations = 0; Rating = 0; Usage = 0; RPU = 0; }
|
| - void Normalize()
|
| - {
|
| - if (NumIterations == 0)
|
| - return;
|
| - Rating /= NumIterations;
|
| - Usage /= NumIterations;
|
| - RPU /= NumIterations;
|
| - NumIterations = 1;
|
| - }
|
| - void SetMid(const CTotalBenchRes &r1, const CTotalBenchRes &r2)
|
| - {
|
| - Rating = (r1.Rating + r2.Rating) / 2;
|
| - Usage = (r1.Usage + r2.Usage) / 2;
|
| - RPU = (r1.RPU + r2.RPU) / 2;
|
| - NumIterations = (r1.NumIterations + r2.NumIterations) / 2;
|
| - }
|
| -};
|
| -
|
| -struct CBenchCallback: public IBenchCallback
|
| -{
|
| - CTotalBenchRes EncodeRes;
|
| - CTotalBenchRes DecodeRes;
|
| - FILE *f;
|
| - void Init() { EncodeRes.Init(); DecodeRes.Init(); }
|
| - void Normalize() { EncodeRes.Normalize(); DecodeRes.Normalize(); }
|
| - UInt32 dictionarySize;
|
| - HRESULT SetEncodeResult(const CBenchInfo &info, bool final);
|
| - HRESULT SetDecodeResult(const CBenchInfo &info, bool final);
|
| -};
|
| -
|
| -static void NormalizeVals(UInt64 &v1, UInt64 &v2)
|
| -{
|
| - while (v1 > 1000000)
|
| - {
|
| - v1 >>= 1;
|
| - v2 >>= 1;
|
| - }
|
| -}
|
| -
|
| -static UInt64 MyMultDiv64(UInt64 value, UInt64 elapsedTime, UInt64 freq)
|
| -{
|
| - UInt64 elTime = elapsedTime;
|
| - NormalizeVals(freq, elTime);
|
| - if (elTime == 0)
|
| - elTime = 1;
|
| - return value * freq / elTime;
|
| -}
|
| -
|
| -static void PrintNumber(FILE *f, UInt64 value, int size)
|
| -{
|
| - char s[32];
|
| - ConvertUInt64ToString(value, s);
|
| - fprintf(f, " ");
|
| - for (int len = (int)strlen(s); len < size; len++)
|
| - fprintf(f, " ");
|
| - fprintf(f, "%s", s);
|
| -}
|
| -
|
| -static void PrintRating(FILE *f, UInt64 rating)
|
| -{
|
| - PrintNumber(f, rating / 1000000, 6);
|
| -}
|
| -
|
| -static void PrintResults(FILE *f, UInt64 usage, UInt64 rpu, UInt64 rating)
|
| -{
|
| - PrintNumber(f, (usage + 5000) / 10000, 5);
|
| - PrintRating(f, rpu);
|
| - PrintRating(f, rating);
|
| -}
|
| -
|
| -
|
| -static void PrintResults(FILE *f, const CBenchInfo &info, UInt64 rating, CTotalBenchRes &res)
|
| -{
|
| - UInt64 speed = MyMultDiv64(info.UnpackSize, info.GlobalTime, info.GlobalFreq);
|
| - PrintNumber(f, speed / 1024, 7);
|
| - UInt64 usage = GetUsage(info);
|
| - UInt64 rpu = GetRatingPerUsage(info, rating);
|
| - PrintResults(f, usage, rpu, rating);
|
| - res.NumIterations++;
|
| - res.RPU += rpu;
|
| - res.Rating += rating;
|
| - res.Usage += usage;
|
| -}
|
| -
|
| -static void PrintTotals(FILE *f, const CTotalBenchRes &res)
|
| -{
|
| - fprintf(f, " ");
|
| - PrintResults(f, res.Usage, res.RPU, res.Rating);
|
| -}
|
| -
|
| -
|
| -HRESULT CBenchCallback::SetEncodeResult(const CBenchInfo &info, bool final)
|
| -{
|
| - #ifdef BREAK_HANDLER
|
| - if (NConsoleClose::TestBreakSignal())
|
| - return E_ABORT;
|
| - #endif
|
| -
|
| - if (final)
|
| - {
|
| - UInt64 rating = GetCompressRating(dictionarySize, info.GlobalTime, info.GlobalFreq, info.UnpackSize);
|
| - PrintResults(f, info, rating, EncodeRes);
|
| - }
|
| - return S_OK;
|
| -}
|
| -
|
| -static const char *kSep = " | ";
|
| -
|
| -
|
| -HRESULT CBenchCallback::SetDecodeResult(const CBenchInfo &info, bool final)
|
| -{
|
| - #ifdef BREAK_HANDLER
|
| - if (NConsoleClose::TestBreakSignal())
|
| - return E_ABORT;
|
| - #endif
|
| - if (final)
|
| - {
|
| - UInt64 rating = GetDecompressRating(info.GlobalTime, info.GlobalFreq, info.UnpackSize, info.PackSize, info.NumIterations);
|
| - fprintf(f, kSep);
|
| - CBenchInfo info2 = info;
|
| - info2.UnpackSize *= info2.NumIterations;
|
| - info2.PackSize *= info2.NumIterations;
|
| - info2.NumIterations = 1;
|
| - PrintResults(f, info2, rating, DecodeRes);
|
| - }
|
| - return S_OK;
|
| -}
|
| -
|
| -static void PrintRequirements(FILE *f, const char *sizeString, UInt64 size, const char *threadsString, UInt32 numThreads)
|
| -{
|
| - fprintf(f, "\nRAM %s ", sizeString);
|
| - PrintNumber(f, (size >> 20), 5);
|
| - fprintf(f, " MB, # %s %3d", threadsString, (unsigned int)numThreads);
|
| -}
|
| -
|
| -HRESULT LzmaBenchCon(
|
| - #ifdef EXTERNAL_LZMA
|
| - CCodecs *codecs,
|
| - #endif
|
| - FILE *f, UInt32 numIterations, UInt32 numThreads, UInt32 dictionary)
|
| -{
|
| - if (!CrcInternalTest())
|
| - return S_FALSE;
|
| - #ifdef BENCH_MT
|
| - UInt64 ramSize = NWindows::NSystem::GetRamSize(); //
|
| - UInt32 numCPUs = NWindows::NSystem::GetNumberOfProcessors();
|
| - PrintRequirements(f, "size: ", ramSize, "CPU hardware threads:", numCPUs);
|
| - if (numThreads == (UInt32)-1)
|
| - numThreads = numCPUs;
|
| - if (numThreads > 1)
|
| - numThreads &= ~1;
|
| - if (dictionary == (UInt32)-1)
|
| - {
|
| - int dicSizeLog;
|
| - for (dicSizeLog = 25; dicSizeLog > kBenchMinDicLogSize; dicSizeLog--)
|
| - if (GetBenchMemoryUsage(numThreads, ((UInt32)1 << dicSizeLog)) + (8 << 20) <= ramSize)
|
| - break;
|
| - dictionary = (1 << dicSizeLog);
|
| - }
|
| - #else
|
| - if (dictionary == (UInt32)-1)
|
| - dictionary = (1 << 22);
|
| - numThreads = 1;
|
| - #endif
|
| -
|
| - PrintRequirements(f, "usage:", GetBenchMemoryUsage(numThreads, dictionary), "Benchmark threads: ", numThreads);
|
| -
|
| - CBenchCallback callback;
|
| - callback.Init();
|
| - callback.f = f;
|
| -
|
| - fprintf(f, "\n\nDict Compressing | Decompressing\n ");
|
| - int j;
|
| - for (j = 0; j < 2; j++)
|
| - {
|
| - fprintf(f, " Speed Usage R/U Rating");
|
| - if (j == 0)
|
| - fprintf(f, kSep);
|
| - }
|
| - fprintf(f, "\n ");
|
| - for (j = 0; j < 2; j++)
|
| - {
|
| - fprintf(f, " KB/s %% MIPS MIPS");
|
| - if (j == 0)
|
| - fprintf(f, kSep);
|
| - }
|
| - fprintf(f, "\n\n");
|
| - for (UInt32 i = 0; i < numIterations; i++)
|
| - {
|
| - const int kStartDicLog = 22;
|
| - int pow = (dictionary < ((UInt32)1 << kStartDicLog)) ? kBenchMinDicLogSize : kStartDicLog;
|
| - while (((UInt32)1 << pow) > dictionary)
|
| - pow--;
|
| - for (; ((UInt32)1 << pow) <= dictionary; pow++)
|
| - {
|
| - fprintf(f, "%2d:", pow);
|
| - callback.dictionarySize = (UInt32)1 << pow;
|
| - HRESULT res = LzmaBench(
|
| - #ifdef EXTERNAL_LZMA
|
| - codecs,
|
| - #endif
|
| - numThreads, callback.dictionarySize, &callback);
|
| - fprintf(f, "\n");
|
| - RINOK(res);
|
| - }
|
| - }
|
| - callback.Normalize();
|
| - fprintf(f, "----------------------------------------------------------------\nAvr:");
|
| - PrintTotals(f, callback.EncodeRes);
|
| - fprintf(f, " ");
|
| - PrintTotals(f, callback.DecodeRes);
|
| - fprintf(f, "\nTot:");
|
| - CTotalBenchRes midRes;
|
| - midRes.SetMid(callback.EncodeRes, callback.DecodeRes);
|
| - PrintTotals(f, midRes);
|
| - fprintf(f, "\n");
|
| - return S_OK;
|
| -}
|
| -
|
| -struct CTempValues
|
| -{
|
| - UInt64 *Values;
|
| - CTempValues(UInt32 num) { Values = new UInt64[num]; }
|
| - ~CTempValues() { delete []Values; }
|
| -};
|
| -
|
| -HRESULT CrcBenchCon(FILE *f, UInt32 numIterations, UInt32 numThreads, UInt32 dictionary)
|
| -{
|
| - if (!CrcInternalTest())
|
| - return S_FALSE;
|
| -
|
| - #ifdef BENCH_MT
|
| - UInt64 ramSize = NWindows::NSystem::GetRamSize();
|
| - UInt32 numCPUs = NWindows::NSystem::GetNumberOfProcessors();
|
| - PrintRequirements(f, "size: ", ramSize, "CPU hardware threads:", numCPUs);
|
| - if (numThreads == (UInt32)-1)
|
| - numThreads = numCPUs;
|
| - #else
|
| - numThreads = 1;
|
| - #endif
|
| - if (dictionary == (UInt32)-1)
|
| - dictionary = (1 << 24);
|
| -
|
| - CTempValues speedTotals(numThreads);
|
| - fprintf(f, "\n\nSize");
|
| - for (UInt32 ti = 0; ti < numThreads; ti++)
|
| - {
|
| - fprintf(f, " %5d", ti + 1);
|
| - speedTotals.Values[ti] = 0;
|
| - }
|
| - fprintf(f, "\n\n");
|
| -
|
| - UInt64 numSteps = 0;
|
| - for (UInt32 i = 0; i < numIterations; i++)
|
| - {
|
| - for (int pow = 10; pow < 32; pow++)
|
| - {
|
| - UInt32 bufSize = (UInt32)1 << pow;
|
| - if (bufSize > dictionary)
|
| - break;
|
| - fprintf(f, "%2d: ", pow);
|
| - UInt64 speed;
|
| - for (UInt32 ti = 0; ti < numThreads; ti++)
|
| - {
|
| - #ifdef BREAK_HANDLER
|
| - if (NConsoleClose::TestBreakSignal())
|
| - return E_ABORT;
|
| - #endif
|
| - RINOK(CrcBench(ti + 1, bufSize, speed));
|
| - PrintNumber(f, (speed >> 20), 5);
|
| - speedTotals.Values[ti] += speed;
|
| - }
|
| - fprintf(f, "\n");
|
| - numSteps++;
|
| - }
|
| - }
|
| - if (numSteps != 0)
|
| - {
|
| - fprintf(f, "\nAvg:");
|
| - for (UInt32 ti = 0; ti < numThreads; ti++)
|
| - PrintNumber(f, ((speedTotals.Values[ti] / numSteps) >> 20), 5);
|
| - fprintf(f, "\n");
|
| - }
|
| - return S_OK;
|
| -}
|
|
|