The most common information that you want to track between begin() and end() is the timestamp of the begin function, so you can measure the duration of the (de)compression call. Allow the tracing library to put this information inside the `ZSTD_TraceCtx`, so it doesn't need to keep a global map in this case. If a single uint64_t is not enough, the tracing library can return a unique identifier (like the context pointer) instead, and use it as a key in a map. This keeps the simple case simple.
43 lines
971 B
C
43 lines
971 B
C
/*
|
|
* Copyright (c) 2016-2021, Facebook, Inc.
|
|
* All rights reserved.
|
|
*
|
|
* This source code is licensed under both the BSD-style license (found in the
|
|
* LICENSE file in the root directory of this source tree) and the GPLv2 (found
|
|
* in the COPYING file in the root directory of this source tree).
|
|
* You may select, at your option, one of the above-listed licenses.
|
|
*/
|
|
|
|
#include "zstd_trace.h"
|
|
#include "../zstd.h"
|
|
|
|
#include "compiler.h"
|
|
|
|
#if ZSTD_TRACE && ZSTD_HAVE_WEAK_SYMBOLS
|
|
|
|
ZSTD_WEAK_ATTR ZSTD_TraceCtx ZSTD_trace_compress_begin(ZSTD_CCtx const* cctx)
|
|
{
|
|
(void)cctx;
|
|
return 0;
|
|
}
|
|
|
|
ZSTD_WEAK_ATTR void ZSTD_trace_compress_end(ZSTD_TraceCtx ctx, ZSTD_Trace const* trace)
|
|
{
|
|
(void)ctx;
|
|
(void)trace;
|
|
}
|
|
|
|
ZSTD_WEAK_ATTR ZSTD_TraceCtx ZSTD_trace_decompress_begin(ZSTD_DCtx const* dctx)
|
|
{
|
|
(void)dctx;
|
|
return 0;
|
|
}
|
|
|
|
ZSTD_WEAK_ATTR void ZSTD_trace_decompress_end(ZSTD_TraceCtx ctx, ZSTD_Trace const* trace)
|
|
{
|
|
(void)ctx;
|
|
(void)trace;
|
|
}
|
|
|
|
#endif
|