Skip to content

Conversation

dmehala
Copy link
Contributor

@dmehala dmehala commented Oct 8, 2025

What does this PR do?

Implement a memfd-like for Windows to store in-memory the tracer configuration. It relies on Windows API to create in-memory file that can be shared and accessed by other processes.

Main difference with the linux implementation is the anonymous file format: datadog-tracer-info-<PID>.

Motivation

@raphaelgavache

How to test the change?

Boot a windows VM. Compile this code:

writer

// clang-cl .\writer.cc -Iinclude "C:\workspace\libdatadog\target\debug\datadog_library_config_ffi.lib" user32.lib ws2_32.lib crypt32.lib secur32.lib userenv.lib ntdll.lib ncrypt.lib advapi32.lib  -o writer.exe
#include <datadog/library-config.h>
#include <iostream>

int main(int argc, char *argv[]) {
  auto pid = GetCurrentProcessId();
  std::cout << "PID: " << pid << std::endl;

  struct ddog_TracerMetadata *builder = ddog_tracer_metadata_new();
  ddog_tracer_metadata_set(builder, DDOG_METADATA_KIND_RUNTIME_ID, "12");

  struct ddog_Result_TracerMemfdHandle result =
      ddog_tracer_metadata_store(builder);
  ddog_tracer_metadata_free(builder);
  if (result.tag == DDOG_RESULT_TRACER_MEMFD_HANDLE_ERR_TRACER_MEMFD_HANDLE) {
    std::cout << "writer.cc: err: " << (char *)result.err.message.ptr
              << std::endl;
    return 1;
  }

  void *handle = result.ok.fd;
  if (handle == nullptr) {
    std::cout << "handle is nullptr" << std::endl;
    return 2;
  }

  std::cout << "tag: " << result.tag << " handle: " << handle << std::endl;

  system("pause");
  return 0;
}

reader

// clang .\reader.cc -o reader.exe
#include <iostream>
// clang-format off
#include <windows.h>
#include <psapi.h>
// clang-format on

static const size_t k_anon_file_size = 256;

void try_read_anon_file(int pid) {
  char fm[256];
  snprintf(fm, 256, "datadog-tracer-info-%d", pid);

  std::cout << "Trying to read anonymous file: " << fm << "..." << std::endl;
  HANDLE h = OpenFileMapping(FILE_MAP_READ, FALSE, fm);
  if (h == NULL) {
    /*std::cout << "Could not open the anonymous file" << std::endl;*/
    return;
  }

  std::cout << "FOUND ONE!" << std::endl;

  void *addr = MapViewOfFile(h, FILE_MAP_READ, 0, 0, k_anon_file_size);
  if (addr == NULL) {
    /*std::cout << "Could not map the file..." << std::endl;*/
    return;
  }

  char *content = (char *)addr;
  std::cout << "[PID:" << pid << "] content: " << content << std::endl;

  UnmapViewOfFile(addr);
  CloseHandle(h);

  return;
}

int main(int argc, char *argv[]) {
  if (argc >= 2) {
    int pid = std::atoi(argv[1]);
    try_read_anon_file(pid);
    return 0;
  }

  DWORD processes[1024], sz_processes;

  if (!EnumProcesses(processes, sizeof(processes), &sz_processes)) {
    printf("EnumProcesses failed\n");
    return 1;
  }

  const size_t cProcesses = sz_processes / sizeof(DWORD);
  for (size_t i = 0; i < cProcesses; i++) {
    if (processes[i] != 0) {
      try_read_anon_file(processes[i]);
    }
  }

  return 0;
}

Expected result:
image

Implement a memfd-like for Windows to store in-memory the tracer
configuration. It relies on Windows API to create in-memory file that
can be shared and accessed by other processes.
@pr-commenter
Copy link

pr-commenter bot commented Oct 8, 2025

Benchmarks

Comparison

Benchmark execution time: 2025-10-09 09:11:49

Comparing candidate commit 57a4e3d in PR branch dmehala/win-memfd with baseline commit f65f27b in branch main.

Found 2 performance improvements and 0 performance regressions! Performance is the same for 51 metrics, 2 unstable metrics.

scenario:credit_card/is_card_number/378282246310005

  • 🟩 execution_time [-9.520µs; -9.240µs] or [-12.191%; -11.833%]
  • 🟩 throughput [+1722528.528op/s; +1774905.993op/s] or [+13.450%; +13.859%]

Candidate

Candidate benchmark details

Group 1

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 57a4e3d 1760000332 dmehala/win-memfd
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
normalization/normalize_trace/test_trace execution_time 243.678ns 254.091ns ± 12.849ns 247.954ns ± 2.450ns 256.289ns 285.712ns 295.484ns 298.440ns 20.36% 1.879 2.633 5.04% 0.909ns 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
normalization/normalize_trace/test_trace execution_time [252.310ns; 255.872ns] or [-0.701%; +0.701%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 57a4e3d 1760000332 dmehala/win-memfd
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
redis/obfuscate_redis_string execution_time 34.319µs 34.844µs ± 0.861µs 34.439µs ± 0.056µs 34.564µs 36.649µs 36.719µs 38.419µs 11.56% 1.773 1.657 2.46% 0.061µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
redis/obfuscate_redis_string execution_time [34.725µs; 34.963µs] or [-0.342%; +0.342%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 57a4e3d 1760000332 dmehala/win-memfd
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
tags/replace_trace_tags execution_time 2.317µs 2.383µs ± 0.022µs 2.377µs ± 0.006µs 2.390µs 2.432µs 2.435µs 2.436µs 2.48% 0.290 1.665 0.91% 0.002µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
tags/replace_trace_tags execution_time [2.380µs; 2.386µs] or [-0.126%; +0.126%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 57a4e3d 1760000332 dmehala/win-memfd
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
concentrator/add_spans_to_concentrator execution_time 10.770ms 10.801ms ± 0.017ms 10.799ms ± 0.010ms 10.809ms 10.826ms 10.849ms 10.895ms 0.88% 1.670 6.477 0.15% 0.001ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
concentrator/add_spans_to_concentrator execution_time [10.799ms; 10.803ms] or [-0.021%; +0.021%] None None None

Group 5

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 57a4e3d 1760000332 dmehala/win-memfd
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
receiver_entry_point/report/2597 execution_time 6.199ms 6.265ms ± 0.049ms 6.251ms ± 0.024ms 6.284ms 6.367ms 6.400ms 6.502ms 4.01% 1.513 2.699 0.78% 0.003ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
receiver_entry_point/report/2597 execution_time [6.258ms; 6.272ms] or [-0.108%; +0.108%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 57a4e3d 1760000332 dmehala/win-memfd
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
ip_address/quantize_peer_ip_address_benchmark execution_time 5.012µs 5.061µs ± 0.028µs 5.067µs ± 0.026µs 5.089µs 5.097µs 5.105µs 5.164µs 1.91% 0.144 -0.750 0.55% 0.002µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
ip_address/quantize_peer_ip_address_benchmark execution_time [5.057µs; 5.065µs] or [-0.077%; +0.077%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 57a4e3d 1760000332 dmehala/win-memfd
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
write only interface execution_time 1.206µs 3.176µs ± 1.447µs 2.999µs ± 0.024µs 3.020µs 3.357µs 13.917µs 15.300µs 410.17% 7.497 56.830 45.43% 0.102µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
write only interface execution_time [2.975µs; 3.376µs] or [-6.313%; +6.313%] None None None

Group 8

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 57a4e3d 1760000332 dmehala/win-memfd
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... execution_time 204.193µs 205.077µs ± 0.510µs 205.015µs ± 0.302µs 205.347µs 206.016µs 206.331µs 208.859µs 1.87% 2.447 13.966 0.25% 0.036µs 1 200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput 4787927.796op/s 4876249.090op/s ± 12054.522op/s 4877699.271op/s ± 7205.765op/s 4884234.888op/s 4890589.225op/s 4891933.028op/s 4897328.825op/s 0.40% -2.374 13.271 0.25% 852.383op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 18.521µs 18.625µs ± 0.084µs 18.618µs ± 0.062µs 18.677µs 18.788µs 18.858µs 18.888µs 1.45% 0.779 0.057 0.45% 0.006µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 52944760.667op/s 53693652.875op/s ± 242133.872op/s 53710777.477op/s ± 179791.718op/s 53943405.888op/s 53977029.846op/s 53987035.197op/s 53992666.149op/s 0.52% -0.759 0.008 0.45% 17121.450op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 10.865µs 10.919µs ± 0.027µs 10.919µs ± 0.019µs 10.937µs 10.967µs 10.990µs 10.995µs 0.70% 0.389 -0.116 0.25% 0.002µs 1 200
normalization/normalize_name/normalize_name/good throughput 90950432.015op/s 91582973.571op/s ± 229823.111op/s 91583478.351op/s ± 155850.303op/s 91743729.839op/s 91936899.024op/s 92008855.366op/s 92036393.016op/s 0.49% -0.376 -0.134 0.25% 16250.948op/s 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... execution_time [205.006µs; 205.148µs] or [-0.034%; +0.034%] None None None
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput [4874578.449op/s; 4877919.731op/s] or [-0.034%; +0.034%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [18.613µs; 18.636µs] or [-0.063%; +0.063%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [53660095.449op/s; 53727210.301op/s] or [-0.062%; +0.062%] None None None
normalization/normalize_name/normalize_name/good execution_time [10.915µs; 10.923µs] or [-0.035%; +0.035%] None None None
normalization/normalize_name/normalize_name/good throughput [91551122.299op/s; 91614824.844op/s] or [-0.035%; +0.035%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 57a4e3d 1760000332 dmehala/win-memfd
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
benching serializing traces from their internal representation to msgpack execution_time 14.990ms 15.045ms ± 0.030ms 15.041ms ± 0.012ms 15.053ms 15.086ms 15.170ms 15.223ms 1.21% 2.502 10.015 0.20% 0.002ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
benching serializing traces from their internal representation to msgpack execution_time [15.041ms; 15.049ms] or [-0.027%; +0.027%] None None None

Group 10

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 57a4e3d 1760000332 dmehala/win-memfd
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
sql/obfuscate_sql_string execution_time 90.635µs 90.856µs ± 0.200µs 90.825µs ± 0.055µs 90.885µs 91.060µs 91.267µs 93.194µs 2.61% 8.335 92.208 0.22% 0.014µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
sql/obfuscate_sql_string execution_time [90.828µs; 90.883µs] or [-0.030%; +0.030%] None None None

Group 11

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 57a4e3d 1760000332 dmehala/win-memfd
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
benching string interning on wordpress profile execution_time 159.239µs 159.952µs ± 0.296µs 159.913µs ± 0.162µs 160.098µs 160.386µs 161.003µs 161.967µs 1.28% 2.193 11.136 0.18% 0.021µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
benching string interning on wordpress profile execution_time [159.911µs; 159.993µs] or [-0.026%; +0.026%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 57a4e3d 1760000332 dmehala/win-memfd
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
benching deserializing traces from msgpack to their internal representation execution_time 60.015ms 60.458ms ± 2.090ms 60.181ms ± 0.077ms 60.297ms 60.432ms 71.845ms 79.790ms 32.58% 8.433 71.168 3.45% 0.148ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
benching deserializing traces from msgpack to their internal representation execution_time [60.169ms; 60.748ms] or [-0.479%; +0.479%] None None None

Group 13

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 57a4e3d 1760000332 dmehala/win-memfd
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
credit_card/is_card_number/ execution_time 3.894µs 3.914µs ± 0.003µs 3.914µs ± 0.001µs 3.916µs 3.918µs 3.920µs 3.920µs 0.17% -1.736 13.909 0.07% 0.000µs 1 200
credit_card/is_card_number/ throughput 255084263.667op/s 255496193.162op/s ± 172820.815op/s 255509543.284op/s ± 96256.094op/s 255600431.800op/s 255701300.861op/s 255771951.830op/s 256787352.032op/s 0.50% 1.762 14.135 0.07% 12220.277op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 76.801µs 78.335µs ± 0.763µs 78.338µs ± 0.544µs 78.780µs 79.686µs 80.349µs 80.764µs 3.10% 0.476 -0.013 0.97% 0.054µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 12381774.608op/s 12766843.204op/s ± 123854.061op/s 12765193.185op/s ± 89034.450op/s 12860919.282op/s 12942775.838op/s 12999086.971op/s 13020733.993op/s 2.00% -0.425 -0.092 0.97% 8757.805op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 70.752µs 72.304µs ± 0.714µs 72.206µs ± 0.443µs 72.693µs 73.649µs 74.050µs 74.538µs 3.23% 0.514 0.017 0.99% 0.051µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 13415896.757op/s 13831848.266op/s ± 136016.233op/s 13849190.250op/s ± 85494.556op/s 13929132.442op/s 14029822.439op/s 14103942.458op/s 14133972.365op/s 2.06% -0.462 -0.038 0.98% 9617.800op/s 1 200
credit_card/is_card_number/37828224631 execution_time 3.895µs 3.914µs ± 0.003µs 3.914µs ± 0.001µs 3.916µs 3.919µs 3.922µs 3.923µs 0.23% -1.052 10.715 0.07% 0.000µs 1 200
credit_card/is_card_number/37828224631 throughput 254891694.982op/s 255462830.809op/s ± 180625.508op/s 255478955.776op/s ± 95985.271op/s 255562480.236op/s 255684829.068op/s 255733007.437op/s 256711874.693op/s 0.48% 1.077 10.881 0.07% 12772.152op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 67.332µs 68.708µs ± 0.704µs 68.612µs ± 0.473µs 69.164µs 69.852µs 70.751µs 71.293µs 3.91% 0.660 0.668 1.02% 0.050µs 1 200
credit_card/is_card_number/378282246310005 throughput 14026549.761op/s 14555862.450op/s ± 148255.717op/s 14574633.284op/s ± 99891.172op/s 14660053.092op/s 14768114.821op/s 14821498.917op/s 14851786.797op/s 1.90% -0.593 0.490 1.02% 10483.262op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 52.761µs 52.915µs ± 0.053µs 52.913µs ± 0.031µs 52.946µs 52.998µs 53.046µs 53.083µs 0.32% 0.226 0.520 0.10% 0.004µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 18838456.646op/s 18898371.310op/s ± 18900.255op/s 18899052.213op/s ± 11024.021op/s 18909125.071op/s 18929135.351op/s 18941626.535op/s 18953304.273op/s 0.29% -0.219 0.515 0.10% 1336.450op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 6.429µs 6.437µs ± 0.005µs 6.437µs ± 0.003µs 6.440µs 6.446µs 6.449µs 6.462µs 0.40% 1.122 2.757 0.08% 0.000µs 1 200
credit_card/is_card_number/x371413321323331 throughput 154743423.653op/s 155353531.060op/s ± 117683.953op/s 155362146.016op/s ± 82694.524op/s 155445642.727op/s 155504394.766op/s 155531065.878op/s 155541511.667op/s 0.12% -1.114 2.714 0.08% 8321.512op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 3.894µs 3.915µs ± 0.003µs 3.914µs ± 0.002µs 3.917µs 3.920µs 3.922µs 3.923µs 0.22% -0.933 8.001 0.08% 0.000µs 1 200
credit_card/is_card_number_no_luhn/ throughput 254909680.163op/s 255447431.150op/s ± 207984.981op/s 255466431.713op/s ± 129630.166op/s 255584777.471op/s 255686850.837op/s 255752138.105op/s 256814556.671op/s 0.53% 0.956 8.156 0.08% 14706.759op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 64.933µs 65.129µs ± 0.134µs 65.077µs ± 0.057µs 65.191µs 65.367µs 65.508µs 65.922µs 1.30% 1.957 6.075 0.21% 0.009µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 15169536.812op/s 15354310.979op/s ± 31500.870op/s 15366405.963op/s ± 13377.279op/s 15374208.996op/s 15384450.628op/s 15388501.903op/s 15400585.222op/s 0.22% -1.931 5.883 0.20% 2227.448op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 58.613µs 58.977µs ± 0.208µs 58.936µs ± 0.127µs 59.079µs 59.355µs 59.566µs 59.689µs 1.28% 0.924 0.814 0.35% 0.015µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 16753436.327op/s 16956039.374op/s ± 59536.881op/s 16967590.206op/s ± 36543.407op/s 16998394.935op/s 17032640.588op/s 17051270.739op/s 17061044.417op/s 0.55% -0.904 0.764 0.35% 4209.893op/s 1 200
credit_card/is_card_number_no_luhn/37828224631 execution_time 3.895µs 3.916µs ± 0.003µs 3.916µs ± 0.002µs 3.917µs 3.920µs 3.923µs 3.924µs 0.22% -1.285 10.269 0.08% 0.000µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 254811219.792op/s 255382312.899op/s ± 193149.680op/s 255378363.289op/s ± 115645.377op/s 255499067.429op/s 255624459.716op/s 255765387.542op/s 256711240.647op/s 0.52% 1.309 10.437 0.08% 13657.745op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 55.367µs 55.690µs ± 0.197µs 55.654µs ± 0.117µs 55.795µs 56.042µs 56.326µs 56.367µs 1.28% 0.987 0.997 0.35% 0.014µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 17740799.818op/s 17956849.676op/s ± 63334.274op/s 17968025.911op/s ± 37912.448op/s 18001121.920op/s 18039800.763op/s 18052501.379op/s 18061256.558op/s 0.52% -0.966 0.936 0.35% 4478.409op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 52.789µs 52.928µs ± 0.046µs 52.927µs ± 0.033µs 52.963µs 53.001µs 53.024µs 53.051µs 0.23% -0.284 0.264 0.09% 0.003µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 18849729.656op/s 18893555.216op/s ± 16531.606op/s 18893771.668op/s ± 11833.844op/s 18904086.118op/s 18924513.112op/s 18935655.090op/s 18943258.826op/s 0.26% 0.290 0.270 0.09% 1168.961op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 6.428µs 6.436µs ± 0.003µs 6.435µs ± 0.002µs 6.438µs 6.442µs 6.443µs 6.444µs 0.13% 0.268 -0.665 0.05% 0.000µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 155184387.631op/s 155381394.056op/s ± 81404.298op/s 155393609.112op/s ± 59217.438op/s 155442039.072op/s 155501463.032op/s 155539675.286op/s 155566142.557op/s 0.11% -0.266 -0.666 0.05% 5756.153op/s 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
credit_card/is_card_number/ execution_time [3.914µs; 3.914µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/ throughput [255472241.859op/s; 255520144.465op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [78.229µs; 78.441µs] or [-0.135%; +0.135%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [12749678.223op/s; 12784008.186op/s] or [-0.134%; +0.134%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [72.205µs; 72.403µs] or [-0.137%; +0.137%] None None None
credit_card/is_card_number/ 378282246310005 throughput [13812997.725op/s; 13850698.808op/s] or [-0.136%; +0.136%] None None None
credit_card/is_card_number/37828224631 execution_time [3.914µs; 3.915µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/37828224631 throughput [255437797.851op/s; 255487863.767op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/378282246310005 execution_time [68.610µs; 68.806µs] or [-0.142%; +0.142%] None None None
credit_card/is_card_number/378282246310005 throughput [14535315.634op/s; 14576409.267op/s] or [-0.141%; +0.141%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [52.907µs; 52.922µs] or [-0.014%; +0.014%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [18895751.917op/s; 18900990.704op/s] or [-0.014%; +0.014%] None None None
credit_card/is_card_number/x371413321323331 execution_time [6.436µs; 6.438µs] or [-0.011%; +0.011%] None None None
credit_card/is_card_number/x371413321323331 throughput [155337221.196op/s; 155369840.924op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/ execution_time [3.914µs; 3.915µs] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/ throughput [255418606.432op/s; 255476255.868op/s] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [65.110µs; 65.147µs] or [-0.029%; +0.029%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [15349945.261op/s; 15358676.696op/s] or [-0.028%; +0.028%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [58.948µs; 59.006µs] or [-0.049%; +0.049%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [16947788.135op/s; 16964290.613op/s] or [-0.049%; +0.049%] None None None
credit_card/is_card_number_no_luhn/37828224631 execution_time [3.915µs; 3.916µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/37828224631 throughput [255355544.211op/s; 255409081.587op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [55.662µs; 55.717µs] or [-0.049%; +0.049%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [17948072.155op/s; 17965627.197op/s] or [-0.049%; +0.049%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [52.922µs; 52.935µs] or [-0.012%; +0.012%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [18891264.095op/s; 18895846.338op/s] or [-0.012%; +0.012%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 execution_time [6.435µs; 6.436µs] or [-0.007%; +0.007%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 throughput [155370112.203op/s; 155392675.909op/s] or [-0.007%; +0.007%] None None None

Group 14

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 57a4e3d 1760000332 dmehala/win-memfd
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... execution_time 534.293µs 536.214µs ± 1.613µs 535.642µs ± 0.505µs 536.584µs 539.758µs 542.076µs 543.089µs 1.39% 1.833 3.376 0.30% 0.114µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 1841319.225op/s 1864942.381op/s ± 5581.088op/s 1866917.141op/s ± 1758.931op/s 1868310.025op/s 1870249.906op/s 1871188.823op/s 1871632.438op/s 0.25% -1.815 3.289 0.30% 394.643op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 383.170µs 384.020µs ± 0.341µs 384.000µs ± 0.214µs 384.216µs 384.616µs 384.892µs 385.006µs 0.26% 0.297 0.076 0.09% 0.024µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2597365.186op/s 2604030.495op/s ± 2310.183op/s 2604167.129op/s ± 1448.625op/s 2605563.826op/s 2607644.066op/s 2608837.685op/s 2609807.038op/s 0.22% -0.292 0.072 0.09% 163.355op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 190.184µs 190.731µs ± 0.287µs 190.708µs ± 0.191µs 190.911µs 191.158µs 191.293µs 192.500µs 0.94% 1.282 6.026 0.15% 0.020µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 5194806.579op/s 5243009.752op/s ± 7873.261op/s 5243615.696op/s ± 5259.026op/s 5248688.938op/s 5254671.459op/s 5257595.749op/s 5258077.216op/s 0.28% -1.254 5.828 0.15% 556.724op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 36.876µs 37.077µs ± 0.093µs 37.097µs ± 0.061µs 37.149µs 37.198µs 37.220µs 37.255µs 0.42% -0.504 -0.687 0.25% 0.007µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 26842216.870op/s 26970868.760op/s ± 67517.638op/s 26956111.884op/s ± 44589.234op/s 27016028.462op/s 27097418.737op/s 27115784.405op/s 27117545.307op/s 0.60% 0.512 -0.679 0.25% 4774.218op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 46.281µs 46.823µs ± 0.217µs 46.836µs ± 0.145µs 46.964µs 47.109µs 47.196µs 48.096µs 2.69% 0.713 4.767 0.46% 0.015µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 20791821.883op/s 21357697.950op/s ± 98479.704op/s 21350874.621op/s ± 66468.001op/s 21426283.411op/s 21522641.771op/s 21573856.722op/s 21607227.185op/s 1.20% -0.629 4.283 0.46% 6963.567op/s 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... execution_time [535.991µs; 536.438µs] or [-0.042%; +0.042%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [1864168.896op/s; 1865715.866op/s] or [-0.041%; +0.041%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [383.973µs; 384.068µs] or [-0.012%; +0.012%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2603710.326op/s; 2604350.664op/s] or [-0.012%; +0.012%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [190.691µs; 190.770µs] or [-0.021%; +0.021%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5241918.594op/s; 5244100.911op/s] or [-0.021%; +0.021%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [37.064µs; 37.090µs] or [-0.035%; +0.035%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [26961511.464op/s; 26980226.055op/s] or [-0.035%; +0.035%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [46.793µs; 46.853µs] or [-0.064%; +0.064%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [21344049.611op/s; 21371346.290op/s] or [-0.064%; +0.064%] None None None

Group 15

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 57a4e3d 1760000332 dmehala/win-memfd
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
two way interface execution_time 17.804µs 26.222µs ± 10.123µs 18.355µs ± 0.198µs 35.169µs 45.137µs 50.344µs 70.400µs 283.55% 0.960 0.510 38.51% 0.716µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
two way interface execution_time [24.819µs; 27.625µs] or [-5.350%; +5.350%] None None None

Baseline

Omitted due to size.

@codecov-commenter
Copy link

codecov-commenter commented Oct 8, 2025

Codecov Report

❌ Patch coverage is 0% with 11 lines in your changes missing coverage. Please review.
✅ Project coverage is 71.80%. Comparing base (f65f27b) to head (57a4e3d).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1262      +/-   ##
==========================================
- Coverage   71.85%   71.80%   -0.05%     
==========================================
  Files         356      356              
  Lines       56685    56692       +7     
==========================================
- Hits        40731    40709      -22     
- Misses      15954    15983      +29     
Components Coverage Δ
datadog-crashtracker 49.28% <ø> (-0.05%) ⬇️
datadog-crashtracker-ffi 5.93% <ø> (ø)
datadog-alloc 98.73% <ø> (ø)
data-pipeline 88.01% <ø> (ø)
data-pipeline-ffi 88.19% <ø> (ø)
ddcommon 84.54% <ø> (ø)
ddcommon-ffi 73.84% <ø> (ø)
ddtelemetry 59.49% <ø> (+0.03%) ⬆️
ddtelemetry-ffi 21.24% <ø> (ø)
dogstatsd-client 83.26% <ø> (ø)
datadog-ipc 82.39% <ø> (ø)
datadog-profiling 76.90% <ø> (ø)
datadog-profiling-ffi 62.12% <ø> (ø)
datadog-sidecar 37.01% <ø> (ø)
datdog-sidecar-ffi 11.03% <ø> (ø)
spawn-worker 55.35% <ø> (ø)
tinybytes 92.22% <ø> (ø)
datadog-trace-normalization 98.24% <ø> (ø)
datadog-trace-obfuscation 94.17% <ø> (ø)
datadog-trace-protobuf 59.65% <ø> (ø)
datadog-trace-utils 89.84% <ø> (ø)
datadog-tracer-flare 54.52% <ø> (ø)
datadog-log 76.31% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link

datadog-official bot commented Oct 8, 2025

✅ Tests

🎉 All green!

❄️ No new flaky tests detected
🧪 All tests passed

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 57a4e3d | Docs | Was this helpful? Give us feedback!

@dd-octo-sts
Copy link

dd-octo-sts bot commented Oct 9, 2025

Artifact Size Benchmark Report

aarch64-alpine-linux-musl
Artifact Baseline Commit Change
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.so 7.25 MB 7.25 MB 0% (0 B) 👌
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.a 71.31 MB 71.31 MB +0% (+1.36 KB) 👌
aarch64-unknown-linux-gnu
Artifact Baseline Commit Change
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.a 83.64 MB 83.64 MB +0% (+816 B) 👌
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so 9.20 MB 9.20 MB +0% (+72 B) 👌
libdatadog-x64-windows
Artifact Baseline Commit Change
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.dll 18.50 MB 18.59 MB +.47% (+90.00 KB) 🔍
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.lib 65.77 KB 65.77 KB 0% (0 B) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.pdb 125.68 MB 126.48 MB +.64% (+824.00 KB) 🔍
/libdatadog-x64-windows/debug/static/datadog_profiling_ffi.lib 656.43 MB 660.64 MB +.64% (+4.21 MB) 🔍
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.dll 5.92 MB 5.93 MB +.21% (+13.00 KB) 🔍
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.lib 65.77 KB 65.77 KB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.pdb 17.44 MB 17.52 MB +.49% (+88.00 KB) 🔍
/libdatadog-x64-windows/release/static/datadog_profiling_ffi.lib 32.40 MB 32.56 MB +.49% (+163.06 KB) 🔍
libdatadog-x86-windows
Artifact Baseline Commit Change
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.dll 15.78 MB 15.85 MB +.47% (+76.00 KB) 🔍
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.lib 66.79 KB 66.79 KB 0% (0 B) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.pdb 128.00 MB 128.86 MB +.67% (+880.00 KB) 🔍
/libdatadog-x86-windows/debug/static/datadog_profiling_ffi.lib 645.48 MB 649.56 MB +.63% (+4.07 MB) 🔍
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.dll 4.53 MB 4.54 MB +.22% (+10.50 KB) 🔍
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.lib 66.79 KB 66.79 KB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.pdb 18.57 MB 18.66 MB +.46% (+88.00 KB) 🔍
/libdatadog-x86-windows/release/static/datadog_profiling_ffi.lib 30.42 MB 30.60 MB +.59% (+183.87 KB) 🔍
x86_64-alpine-linux-musl
Artifact Baseline Commit Change
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.a 63.91 MB 63.91 MB +0% (+1.07 KB) 👌
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.so 8.55 MB 8.55 MB 0% (0 B) 👌
x86_64-unknown-linux-gnu
Artifact Baseline Commit Change
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.a 78.37 MB 78.37 MB +0% (+816 B) 👌
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so 9.90 MB 9.90 MB 0% (0 B) 👌

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants