mirror of
https://github.com/wolfpld/tracy.git
synced 2024-12-02 01:44:34 +00:00
7424077d70
Source file, function name and line number are now stored in a const static container object. This has the following benefits: - Slightly lighter profiling workload (3 instructions less). - Profiling queue event size is significantly reduced, by 12 bytes. This has an effect on all queue event types. - Source location grouping has now no cost, as it's performed at the compilation stage. This allows simplification of server code. The downside is that the full source location resolution is now performed in two steps, as the server has to query both source location container and strings contained within. This has almost no real impact on profiler operation.
39 lines
732 B
C++
Executable File
39 lines
732 B
C++
Executable File
#ifndef __TRACYPROTOCOL_HPP__
|
|
#define __TRACYPROTOCOL_HPP__
|
|
|
|
#include <limits>
|
|
#include <stdint.h>
|
|
|
|
#include "../common/tracy_lz4.hpp"
|
|
|
|
namespace tracy
|
|
{
|
|
|
|
using lz4sz_t = uint16_t;
|
|
|
|
enum { TargetFrameSize = 64000 };
|
|
enum { LZ4Size = LZ4_COMPRESSBOUND( TargetFrameSize ) };
|
|
static_assert( LZ4Size <= std::numeric_limits<lz4sz_t>::max(), "LZ4Size greater than lz4sz_t" );
|
|
static_assert( TargetFrameSize * 2 >= 64 * 1024, "Not enough space for LZ4 stream buffer" );
|
|
|
|
enum ServerQuery : uint8_t
|
|
{
|
|
ServerQueryString,
|
|
ServerQueryThreadString,
|
|
ServerQuerySourceLocation
|
|
};
|
|
|
|
#pragma pack( 1 )
|
|
struct WelcomeMessage
|
|
{
|
|
uint8_t lz4;
|
|
double timerMul;
|
|
uint64_t timeBegin;
|
|
uint64_t delay;
|
|
};
|
|
#pragma pack()
|
|
|
|
}
|
|
|
|
#endif
|