Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(842)

Side by Side Diff: third_party/tcmalloc/chromium/src/tests/sampler_test.cc

Issue 9666033: Experiment for updating the tcmalloc chromium branch to r144 (gperftools 2.0). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2008, Google Inc. 1 // Copyright (c) 2008, Google Inc.
2 // All rights reserved. 2 // All rights reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions are 5 // modification, are permitted provided that the following conditions are
6 // met: 6 // met:
7 // 7 //
8 // * Redistributions of source code must retain the above copyright 8 // * Redistributions of source code must retain the above copyright
9 // notice, this list of conditions and the following disclaimer. 9 // notice, this list of conditions and the following disclaimer.
10 // * Redistributions in binary form must reproduce the above 10 // * Redistributions in binary form must reproduce the above
(...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after
350 350
351 bool CheckMean(size_t mean, int num_samples) { 351 bool CheckMean(size_t mean, int num_samples) {
352 tcmalloc::Sampler sampler; 352 tcmalloc::Sampler sampler;
353 sampler.Init(1); 353 sampler.Init(1);
354 size_t total = 0; 354 size_t total = 0;
355 for (int i = 0; i < num_samples; i++) { 355 for (int i = 0; i < num_samples; i++) {
356 total += sampler.PickNextSamplingPoint(); 356 total += sampler.PickNextSamplingPoint();
357 } 357 }
358 double empirical_mean = total / static_cast<double>(num_samples); 358 double empirical_mean = total / static_cast<double>(num_samples);
359 double expected_sd = mean / pow(num_samples * 1.0, 0.5); 359 double expected_sd = mean / pow(num_samples * 1.0, 0.5);
360 return(abs(mean-empirical_mean) < expected_sd * kSigmas); 360 return(fabs(mean-empirical_mean) < expected_sd * kSigmas);
361 } 361 }
362 362
363 // Prints a sequence so you can look at the distribution 363 // Prints a sequence so you can look at the distribution
364 void OutputSequence(int sequence_length) { 364 void OutputSequence(int sequence_length) {
365 tcmalloc::Sampler sampler; 365 tcmalloc::Sampler sampler;
366 sampler.Init(1); 366 sampler.Init(1);
367 size_t next_step; 367 size_t next_step;
368 for (int i = 0; i< sequence_length; i++) { 368 for (int i = 0; i< sequence_length; i++) {
369 next_step = sampler.PickNextSamplingPoint(); 369 next_step = sampler.PickNextSamplingPoint();
370 LOG(INFO) << next_step; 370 LOG(INFO) << next_step;
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
402 } 402 }
403 // Now test that there are the right number of each 403 // Now test that there are the right number of each
404 double large_allocs_sds = 404 double large_allocs_sds =
405 StandardDeviationsErrorInSample(num_iters, counter_big, 405 StandardDeviationsErrorInSample(num_iters, counter_big,
406 size_big, kSamplingInterval); 406 size_big, kSamplingInterval);
407 double small_allocs_sds = 407 double small_allocs_sds =
408 StandardDeviationsErrorInSample(num_iters*129, counter_small, 408 StandardDeviationsErrorInSample(num_iters*129, counter_small,
409 size_small, kSamplingInterval); 409 size_small, kSamplingInterval);
410 LOG(INFO) << StringPrintf("large_allocs_sds = %f\n", large_allocs_sds); 410 LOG(INFO) << StringPrintf("large_allocs_sds = %f\n", large_allocs_sds);
411 LOG(INFO) << StringPrintf("small_allocs_sds = %f\n", small_allocs_sds); 411 LOG(INFO) << StringPrintf("small_allocs_sds = %f\n", small_allocs_sds);
412 CHECK_LE(abs(large_allocs_sds), kSigmas); 412 CHECK_LE(fabs(large_allocs_sds), kSigmas);
413 CHECK_LE(abs(small_allocs_sds), kSigmas); 413 CHECK_LE(fabs(small_allocs_sds), kSigmas);
414 } 414 }
415 415
416 // Tests whether the mean is about right over 1000 samples 416 // Tests whether the mean is about right over 1000 samples
417 TEST(Sampler, IsMeanRight) { 417 TEST(Sampler, IsMeanRight) {
418 CHECK(CheckMean(kSamplingInterval, 1000)); 418 CHECK(CheckMean(kSamplingInterval, 1000));
419 } 419 }
420 420
421 // This flag is for the OldSampler class to use 421 // This flag is for the OldSampler class to use
422 const int64 FLAGS_mock_tcmalloc_sample_parameter = 1<<19; 422 const int64 FLAGS_mock_tcmalloc_sample_parameter = 1<<19;
423 423
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
648 } 648 }
649 649
650 // Make sure sampling is enabled, or the tests won't work right. 650 // Make sure sampling is enabled, or the tests won't work right.
651 DECLARE_int64(tcmalloc_sample_parameter); 651 DECLARE_int64(tcmalloc_sample_parameter);
652 652
653 int main(int argc, char **argv) { 653 int main(int argc, char **argv) {
654 if (FLAGS_tcmalloc_sample_parameter == 0) 654 if (FLAGS_tcmalloc_sample_parameter == 0)
655 FLAGS_tcmalloc_sample_parameter = 524288; 655 FLAGS_tcmalloc_sample_parameter = 524288;
656 return RUN_ALL_TESTS(); 656 return RUN_ALL_TESTS();
657 } 657 }
OLDNEW
« no previous file with comments | « third_party/tcmalloc/chromium/src/tests/profiler_unittest.cc ('k') | third_party/tcmalloc/chromium/src/tests/sampling_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698