26 using namespace impala;
46 template <
int STORAGE_SIZE>
50 char bytes_[STORAGE_SIZE];
56 char inline_data_[STORAGE_SIZE - 1];
60 long indirect_len_ : 15;
61 long indirect_ptr_ : 48;
70 long len = strlen(str);
71 if (len < STORAGE_SIZE) {
72 memcpy(inline_data_, str, len);
76 indirect_ptr_ =
reinterpret_cast<long>(str);
82 const char*
ptr()
const {
83 if (is_inline_)
return inline_data_;
84 return reinterpret_cast<const char*
>(indirect_ptr_);
88 if (is_inline_)
return inline_len_;
104 for (
int i = 0; i < batch_size; ++i) {
115 for (
int i = 0; i < batch_size; ++i) {
126 for (
int i = 0; i < batch_size; ++i) {
137 for (
int i = 0; i < batch_size; ++i) {
153 for (
int i = 0; i < num_small_strings; ++i) {
156 for (
int i = 0; i < num_large_strings; ++i) {
162 for (
int i = 0; i < num_small_strings; ++i) {
166 for (
int i = 0; i < num_large_strings; ++i) {
177 int main(
int argc,
char **argv) {
192 cout <<
"Uh oh - this is broken." << endl;
int main(int argc, char **argv)
int AddBenchmark(const std::string &name, BenchmarkFunction fn, void *args, int baseline_idx=0)
vector< string > string_data
void InitTestData(TestData *data, int num_small_strings, int num_large_strings)
static std::string GetMachineInfo()
Output machine/build configuration as a string.
vector< CompactStringValue< 8 > > compact_strings
void TestCompactStringsSequential(int batch_size, void *d)
void TestCompactStringsRandom(int batch_size, void *d)
std::string Measure()
Runs all the benchmarks and returns the result in a formatted string.
vector< StringValue > normal_strings
void TestNormalStringsRandom(int batch_size, void *d)
static uint32_t CrcHash(const void *data, int32_t bytes, uint32_t hash)
void TestNormalStringsSequential(int batch_size, void *d)
static void Init()
Initialize CpuInfo.
vector< int > random_order
CompactStringValue(const char *str)
void AddTestString(TestData *data, const char *s)