| // Bench.h | |
| #ifndef __7ZIP_BENCH_H | |
| #define __7ZIP_BENCH_H | |
| #include "../../Common/CreateCoder.h" | |
| #include "../../UI/Common/Property.h" | |
| struct CBenchInfo | |
| { | |
| UInt64 GlobalTime; | |
| UInt64 GlobalFreq; | |
| UInt64 UserTime; | |
| UInt64 UserFreq; | |
| UInt64 UnpackSize; | |
| UInt64 PackSize; | |
| UInt64 NumIterations; | |
| CBenchInfo(): NumIterations(0) {} | |
| UInt64 GetUsage() const; | |
| UInt64 GetRatingPerUsage(UInt64 rating) const; | |
| UInt64 GetSpeed(UInt64 numCommands) const; | |
| }; | |
| struct IBenchCallback | |
| { | |
| virtual HRESULT SetFreq(bool showFreq, UInt64 cpuFreq) = 0; | |
| virtual HRESULT SetEncodeResult(const CBenchInfo &info, bool final) = 0; | |
| virtual HRESULT SetDecodeResult(const CBenchInfo &info, bool final) = 0; | |
| }; | |
| UInt64 GetCompressRating(UInt32 dictSize, UInt64 elapsedTime, UInt64 freq, UInt64 size); | |
| UInt64 GetDecompressRating(UInt64 elapsedTime, UInt64 freq, UInt64 outSize, UInt64 inSize, UInt64 numIterations); | |
| const int kBenchMinDicLogSize = 18; | |
| UInt64 GetBenchMemoryUsage(UInt32 numThreads, UInt32 dictionary); | |
| struct IBenchPrintCallback | |
| { | |
| virtual void Print(const char *s) = 0; | |
| virtual void NewLine() = 0; | |
| virtual HRESULT CheckBreak() = 0; | |
| }; | |
| HRESULT Bench( | |
| DECL_EXTERNAL_CODECS_LOC_VARS | |
| IBenchPrintCallback *printCallback, | |
| IBenchCallback *benchCallback, | |
| const CObjectVector<CProperty> &props, | |
| UInt32 numIterations, | |
| bool multiDict | |
| ); | |
| #endif |