Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

feat(library-config): support windows memory file#1262

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Open
dmehala wants to merge3 commits intomain
base:main
Choose a base branch
Loading
fromdmehala/win-memfd

Conversation

@dmehala
Copy link
Contributor

@dmehaladmehala commentedOct 8, 2025
edited
Loading

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 and supporting service renaming on Windows.

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>intmain(int argc,char *argv[]) {auto pid =GetCurrentProcessId();  std::cout <<"PID:" << pid << std::endl;structddog_TracerMetadata *builder =ddog_tracer_metadata_new();ddog_tracer_metadata_set(builder, DDOG_METADATA_KIND_RUNTIME_ID,"12");structddog_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;return1;  }void *handle = result.ok.fd;if (handle ==nullptr) {    std::cout <<"handle is nullptr" << std::endl;return2;  }  std::cout <<"tag:" << result.tag <<" handle:" << handle << std::endl;system("pause");return0;}

reader

// clang .\reader.cc -o reader.exe#include<iostream>// clang-format off#include<windows.h>#include<psapi.h>// clang-format onstaticconstsize_t k_anon_file_size =256;voidtry_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;}intmain(int argc,char *argv[]) {if (argc >=2) {int pid =std::atoi(argv[1]);try_read_anon_file(pid);return0;  }  DWORD processes[1024], sz_processes;if (!EnumProcesses(processes,sizeof(processes), &sz_processes)) {printf("EnumProcesses failed\n");return1;  }constsize_t cProcesses = sz_processes /sizeof(DWORD);for (size_t i =0; i < cProcesses; i++) {if (processes[i] !=0) {try_read_anon_file(processes[i]);    }  }return0;}

Expected result:
image

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

pr-commenterbot commentedOct 8, 2025
edited
Loading

Benchmarks

Comparison

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

Comparing candidate commit57a4e3d in PR branchdmehala/win-memfd with baseline commitf65f27b in branchmain.

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_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz57a4e3d1760000332dmehala/win-memfd
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
normalization/normalize_trace/test_traceexecution_time243.678ns254.091ns ± 12.849ns247.954ns ± 2.450ns256.289ns285.712ns295.484ns298.440ns20.36%1.8792.6335.04%0.909ns1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-Box pvalue (lag=1)Dip test pvalue
normalization/normalize_trace/test_traceexecution_time[252.310ns; 255.872ns] or [-0.701%; +0.701%]NoneNoneNone

Group 2

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz57a4e3d1760000332dmehala/win-memfd
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
redis/obfuscate_redis_stringexecution_time34.319µs34.844µs ± 0.861µs34.439µs ± 0.056µs34.564µs36.649µs36.719µs38.419µs11.56%1.7731.6572.46%0.061µs1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-Box pvalue (lag=1)Dip test pvalue
redis/obfuscate_redis_stringexecution_time[34.725µs; 34.963µs] or [-0.342%; +0.342%]NoneNoneNone

Group 3

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz57a4e3d1760000332dmehala/win-memfd
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
tags/replace_trace_tagsexecution_time2.317µs2.383µs ± 0.022µs2.377µs ± 0.006µs2.390µs2.432µs2.435µs2.436µs2.48%0.2901.6650.91%0.002µs1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-Box pvalue (lag=1)Dip test pvalue
tags/replace_trace_tagsexecution_time[2.380µs; 2.386µs] or [-0.126%; +0.126%]NoneNoneNone

Group 4

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz57a4e3d1760000332dmehala/win-memfd
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
concentrator/add_spans_to_concentratorexecution_time10.770ms10.801ms ± 0.017ms10.799ms ± 0.010ms10.809ms10.826ms10.849ms10.895ms0.88%1.6706.4770.15%0.001ms1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-Box pvalue (lag=1)Dip test pvalue
concentrator/add_spans_to_concentratorexecution_time[10.799ms; 10.803ms] or [-0.021%; +0.021%]NoneNoneNone

Group 5

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz57a4e3d1760000332dmehala/win-memfd
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
receiver_entry_point/report/2597execution_time6.199ms6.265ms ± 0.049ms6.251ms ± 0.024ms6.284ms6.367ms6.400ms6.502ms4.01%1.5132.6990.78%0.003ms1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-Box pvalue (lag=1)Dip test pvalue
receiver_entry_point/report/2597execution_time[6.258ms; 6.272ms] or [-0.108%; +0.108%]NoneNoneNone

Group 6

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz57a4e3d1760000332dmehala/win-memfd
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
ip_address/quantize_peer_ip_address_benchmarkexecution_time5.012µs5.061µs ± 0.028µs5.067µs ± 0.026µs5.089µs5.097µs5.105µs5.164µs1.91%0.144-0.7500.55%0.002µs1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-Box pvalue (lag=1)Dip test pvalue
ip_address/quantize_peer_ip_address_benchmarkexecution_time[5.057µs; 5.065µs] or [-0.077%; +0.077%]NoneNoneNone

Group 7

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz57a4e3d1760000332dmehala/win-memfd
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
write only interfaceexecution_time1.206µs3.176µs ± 1.447µs2.999µs ± 0.024µs3.020µs3.357µs13.917µs15.300µs410.17%7.49756.83045.43%0.102µs1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-Box pvalue (lag=1)Dip test pvalue
write only interfaceexecution_time[2.975µs; 3.376µs] or [-6.313%; +6.313%]NoneNoneNone

Group 8

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz57a4e3d1760000332dmehala/win-memfd
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo...execution_time204.193µs205.077µs ± 0.510µs205.015µs ± 0.302µs205.347µs206.016µs206.331µs208.859µs1.87%2.44713.9660.25%0.036µs1200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo...throughput4787927.796op/s4876249.090op/s ± 12054.522op/s4877699.271op/s ± 7205.765op/s4884234.888op/s4890589.225op/s4891933.028op/s4897328.825op/s0.40%-2.37413.2710.25%852.383op/s1200
normalization/normalize_name/normalize_name/bad-nameexecution_time18.521µs18.625µs ± 0.084µs18.618µs ± 0.062µs18.677µs18.788µs18.858µs18.888µs1.45%0.7790.0570.45%0.006µs1200
normalization/normalize_name/normalize_name/bad-namethroughput52944760.667op/s53693652.875op/s ± 242133.872op/s53710777.477op/s ± 179791.718op/s53943405.888op/s53977029.846op/s53987035.197op/s53992666.149op/s0.52%-0.7590.0080.45%17121.450op/s1200
normalization/normalize_name/normalize_name/goodexecution_time10.865µs10.919µs ± 0.027µs10.919µs ± 0.019µs10.937µs10.967µs10.990µs10.995µs0.70%0.389-0.1160.25%0.002µs1200
normalization/normalize_name/normalize_name/goodthroughput90950432.015op/s91582973.571op/s ± 229823.111op/s91583478.351op/s ± 155850.303op/s91743729.839op/s91936899.024op/s92008855.366op/s92036393.016op/s0.49%-0.376-0.1340.25%16250.948op/s1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-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%]NoneNoneNone
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%]NoneNoneNone
normalization/normalize_name/normalize_name/bad-nameexecution_time[18.613µs; 18.636µs] or [-0.063%; +0.063%]NoneNoneNone
normalization/normalize_name/normalize_name/bad-namethroughput[53660095.449op/s; 53727210.301op/s] or [-0.062%; +0.062%]NoneNoneNone
normalization/normalize_name/normalize_name/goodexecution_time[10.915µs; 10.923µs] or [-0.035%; +0.035%]NoneNoneNone
normalization/normalize_name/normalize_name/goodthroughput[91551122.299op/s; 91614824.844op/s] or [-0.035%; +0.035%]NoneNoneNone

Group 9

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz57a4e3d1760000332dmehala/win-memfd
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
benching serializing traces from their internal representation to msgpackexecution_time14.990ms15.045ms ± 0.030ms15.041ms ± 0.012ms15.053ms15.086ms15.170ms15.223ms1.21%2.50210.0150.20%0.002ms1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-Box pvalue (lag=1)Dip test pvalue
benching serializing traces from their internal representation to msgpackexecution_time[15.041ms; 15.049ms] or [-0.027%; +0.027%]NoneNoneNone

Group 10

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz57a4e3d1760000332dmehala/win-memfd
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
sql/obfuscate_sql_stringexecution_time90.635µs90.856µs ± 0.200µs90.825µs ± 0.055µs90.885µs91.060µs91.267µs93.194µs2.61%8.33592.2080.22%0.014µs1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-Box pvalue (lag=1)Dip test pvalue
sql/obfuscate_sql_stringexecution_time[90.828µs; 90.883µs] or [-0.030%; +0.030%]NoneNoneNone

Group 11

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz57a4e3d1760000332dmehala/win-memfd
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
benching string interning on wordpress profileexecution_time159.239µs159.952µs ± 0.296µs159.913µs ± 0.162µs160.098µs160.386µs161.003µs161.967µs1.28%2.19311.1360.18%0.021µs1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-Box pvalue (lag=1)Dip test pvalue
benching string interning on wordpress profileexecution_time[159.911µs; 159.993µs] or [-0.026%; +0.026%]NoneNoneNone

Group 12

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz57a4e3d1760000332dmehala/win-memfd
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
benching deserializing traces from msgpack to their internal representationexecution_time60.015ms60.458ms ± 2.090ms60.181ms ± 0.077ms60.297ms60.432ms71.845ms79.790ms32.58%8.43371.1683.45%0.148ms1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-Box pvalue (lag=1)Dip test pvalue
benching deserializing traces from msgpack to their internal representationexecution_time[60.169ms; 60.748ms] or [-0.479%; +0.479%]NoneNoneNone

Group 13

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz57a4e3d1760000332dmehala/win-memfd
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
credit_card/is_card_number/execution_time3.894µs3.914µs ± 0.003µs3.914µs ± 0.001µs3.916µs3.918µs3.920µs3.920µs0.17%-1.73613.9090.07%0.000µs1200
credit_card/is_card_number/throughput255084263.667op/s255496193.162op/s ± 172820.815op/s255509543.284op/s ± 96256.094op/s255600431.800op/s255701300.861op/s255771951.830op/s256787352.032op/s0.50%1.76214.1350.07%12220.277op/s1200
credit_card/is_card_number/ 3782-8224-6310-005execution_time76.801µs78.335µs ± 0.763µs78.338µs ± 0.544µs78.780µs79.686µs80.349µs80.764µs3.10%0.476-0.0130.97%0.054µs1200
credit_card/is_card_number/ 3782-8224-6310-005throughput12381774.608op/s12766843.204op/s ± 123854.061op/s12765193.185op/s ± 89034.450op/s12860919.282op/s12942775.838op/s12999086.971op/s13020733.993op/s2.00%-0.425-0.0920.97%8757.805op/s1200
credit_card/is_card_number/ 378282246310005execution_time70.752µs72.304µs ± 0.714µs72.206µs ± 0.443µs72.693µs73.649µs74.050µs74.538µs3.23%0.5140.0170.99%0.051µs1200
credit_card/is_card_number/ 378282246310005throughput13415896.757op/s13831848.266op/s ± 136016.233op/s13849190.250op/s ± 85494.556op/s13929132.442op/s14029822.439op/s14103942.458op/s14133972.365op/s2.06%-0.462-0.0380.98%9617.800op/s1200
credit_card/is_card_number/37828224631execution_time3.895µs3.914µs ± 0.003µs3.914µs ± 0.001µs3.916µs3.919µs3.922µs3.923µs0.23%-1.05210.7150.07%0.000µs1200
credit_card/is_card_number/37828224631throughput254891694.982op/s255462830.809op/s ± 180625.508op/s255478955.776op/s ± 95985.271op/s255562480.236op/s255684829.068op/s255733007.437op/s256711874.693op/s0.48%1.07710.8810.07%12772.152op/s1200
credit_card/is_card_number/378282246310005execution_time67.332µs68.708µs ± 0.704µs68.612µs ± 0.473µs69.164µs69.852µs70.751µs71.293µs3.91%0.6600.6681.02%0.050µs1200
credit_card/is_card_number/378282246310005throughput14026549.761op/s14555862.450op/s ± 148255.717op/s14574633.284op/s ± 99891.172op/s14660053.092op/s14768114.821op/s14821498.917op/s14851786.797op/s1.90%-0.5930.4901.02%10483.262op/s1200
credit_card/is_card_number/37828224631000521389798execution_time52.761µs52.915µs ± 0.053µs52.913µs ± 0.031µs52.946µs52.998µs53.046µs53.083µs0.32%0.2260.5200.10%0.004µs1200
credit_card/is_card_number/37828224631000521389798throughput18838456.646op/s18898371.310op/s ± 18900.255op/s18899052.213op/s ± 11024.021op/s18909125.071op/s18929135.351op/s18941626.535op/s18953304.273op/s0.29%-0.2190.5150.10%1336.450op/s1200
credit_card/is_card_number/x371413321323331execution_time6.429µs6.437µs ± 0.005µs6.437µs ± 0.003µs6.440µs6.446µs6.449µs6.462µs0.40%1.1222.7570.08%0.000µs1200
credit_card/is_card_number/x371413321323331throughput154743423.653op/s155353531.060op/s ± 117683.953op/s155362146.016op/s ± 82694.524op/s155445642.727op/s155504394.766op/s155531065.878op/s155541511.667op/s0.12%-1.1142.7140.08%8321.512op/s1200
credit_card/is_card_number_no_luhn/execution_time3.894µs3.915µs ± 0.003µs3.914µs ± 0.002µs3.917µs3.920µs3.922µs3.923µs0.22%-0.9338.0010.08%0.000µs1200
credit_card/is_card_number_no_luhn/throughput254909680.163op/s255447431.150op/s ± 207984.981op/s255466431.713op/s ± 129630.166op/s255584777.471op/s255686850.837op/s255752138.105op/s256814556.671op/s0.53%0.9568.1560.08%14706.759op/s1200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005execution_time64.933µs65.129µs ± 0.134µs65.077µs ± 0.057µs65.191µs65.367µs65.508µs65.922µs1.30%1.9576.0750.21%0.009µs1200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005throughput15169536.812op/s15354310.979op/s ± 31500.870op/s15366405.963op/s ± 13377.279op/s15374208.996op/s15384450.628op/s15388501.903op/s15400585.222op/s0.22%-1.9315.8830.20%2227.448op/s1200
credit_card/is_card_number_no_luhn/ 378282246310005execution_time58.613µs58.977µs ± 0.208µs58.936µs ± 0.127µs59.079µs59.355µs59.566µs59.689µs1.28%0.9240.8140.35%0.015µs1200
credit_card/is_card_number_no_luhn/ 378282246310005throughput16753436.327op/s16956039.374op/s ± 59536.881op/s16967590.206op/s ± 36543.407op/s16998394.935op/s17032640.588op/s17051270.739op/s17061044.417op/s0.55%-0.9040.7640.35%4209.893op/s1200
credit_card/is_card_number_no_luhn/37828224631execution_time3.895µs3.916µs ± 0.003µs3.916µs ± 0.002µs3.917µs3.920µs3.923µs3.924µs0.22%-1.28510.2690.08%0.000µs1200
credit_card/is_card_number_no_luhn/37828224631throughput254811219.792op/s255382312.899op/s ± 193149.680op/s255378363.289op/s ± 115645.377op/s255499067.429op/s255624459.716op/s255765387.542op/s256711240.647op/s0.52%1.30910.4370.08%13657.745op/s1200
credit_card/is_card_number_no_luhn/378282246310005execution_time55.367µs55.690µs ± 0.197µs55.654µs ± 0.117µs55.795µs56.042µs56.326µs56.367µs1.28%0.9870.9970.35%0.014µs1200
credit_card/is_card_number_no_luhn/378282246310005throughput17740799.818op/s17956849.676op/s ± 63334.274op/s17968025.911op/s ± 37912.448op/s18001121.920op/s18039800.763op/s18052501.379op/s18061256.558op/s0.52%-0.9660.9360.35%4478.409op/s1200
credit_card/is_card_number_no_luhn/37828224631000521389798execution_time52.789µs52.928µs ± 0.046µs52.927µs ± 0.033µs52.963µs53.001µs53.024µs53.051µs0.23%-0.2840.2640.09%0.003µs1200
credit_card/is_card_number_no_luhn/37828224631000521389798throughput18849729.656op/s18893555.216op/s ± 16531.606op/s18893771.668op/s ± 11833.844op/s18904086.118op/s18924513.112op/s18935655.090op/s18943258.826op/s0.26%0.2900.2700.09%1168.961op/s1200
credit_card/is_card_number_no_luhn/x371413321323331execution_time6.428µs6.436µs ± 0.003µs6.435µs ± 0.002µs6.438µs6.442µs6.443µs6.444µs0.13%0.268-0.6650.05%0.000µs1200
credit_card/is_card_number_no_luhn/x371413321323331throughput155184387.631op/s155381394.056op/s ± 81404.298op/s155393609.112op/s ± 59217.438op/s155442039.072op/s155501463.032op/s155539675.286op/s155566142.557op/s0.11%-0.266-0.6660.05%5756.153op/s1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-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%]NoneNoneNone
credit_card/is_card_number/throughput[255472241.859op/s; 255520144.465op/s] or [-0.009%; +0.009%]NoneNoneNone
credit_card/is_card_number/ 3782-8224-6310-005execution_time[78.229µs; 78.441µs] or [-0.135%; +0.135%]NoneNoneNone
credit_card/is_card_number/ 3782-8224-6310-005throughput[12749678.223op/s; 12784008.186op/s] or [-0.134%; +0.134%]NoneNoneNone
credit_card/is_card_number/ 378282246310005execution_time[72.205µs; 72.403µs] or [-0.137%; +0.137%]NoneNoneNone
credit_card/is_card_number/ 378282246310005throughput[13812997.725op/s; 13850698.808op/s] or [-0.136%; +0.136%]NoneNoneNone
credit_card/is_card_number/37828224631execution_time[3.914µs; 3.915µs] or [-0.010%; +0.010%]NoneNoneNone
credit_card/is_card_number/37828224631throughput[255437797.851op/s; 255487863.767op/s] or [-0.010%; +0.010%]NoneNoneNone
credit_card/is_card_number/378282246310005execution_time[68.610µs; 68.806µs] or [-0.142%; +0.142%]NoneNoneNone
credit_card/is_card_number/378282246310005throughput[14535315.634op/s; 14576409.267op/s] or [-0.141%; +0.141%]NoneNoneNone
credit_card/is_card_number/37828224631000521389798execution_time[52.907µs; 52.922µs] or [-0.014%; +0.014%]NoneNoneNone
credit_card/is_card_number/37828224631000521389798throughput[18895751.917op/s; 18900990.704op/s] or [-0.014%; +0.014%]NoneNoneNone
credit_card/is_card_number/x371413321323331execution_time[6.436µs; 6.438µs] or [-0.011%; +0.011%]NoneNoneNone
credit_card/is_card_number/x371413321323331throughput[155337221.196op/s; 155369840.924op/s] or [-0.010%; +0.010%]NoneNoneNone
credit_card/is_card_number_no_luhn/execution_time[3.914µs; 3.915µs] or [-0.011%; +0.011%]NoneNoneNone
credit_card/is_card_number_no_luhn/throughput[255418606.432op/s; 255476255.868op/s] or [-0.011%; +0.011%]NoneNoneNone
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005execution_time[65.110µs; 65.147µs] or [-0.029%; +0.029%]NoneNoneNone
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005throughput[15349945.261op/s; 15358676.696op/s] or [-0.028%; +0.028%]NoneNoneNone
credit_card/is_card_number_no_luhn/ 378282246310005execution_time[58.948µs; 59.006µs] or [-0.049%; +0.049%]NoneNoneNone
credit_card/is_card_number_no_luhn/ 378282246310005throughput[16947788.135op/s; 16964290.613op/s] or [-0.049%; +0.049%]NoneNoneNone
credit_card/is_card_number_no_luhn/37828224631execution_time[3.915µs; 3.916µs] or [-0.010%; +0.010%]NoneNoneNone
credit_card/is_card_number_no_luhn/37828224631throughput[255355544.211op/s; 255409081.587op/s] or [-0.010%; +0.010%]NoneNoneNone
credit_card/is_card_number_no_luhn/378282246310005execution_time[55.662µs; 55.717µs] or [-0.049%; +0.049%]NoneNoneNone
credit_card/is_card_number_no_luhn/378282246310005throughput[17948072.155op/s; 17965627.197op/s] or [-0.049%; +0.049%]NoneNoneNone
credit_card/is_card_number_no_luhn/37828224631000521389798execution_time[52.922µs; 52.935µs] or [-0.012%; +0.012%]NoneNoneNone
credit_card/is_card_number_no_luhn/37828224631000521389798throughput[18891264.095op/s; 18895846.338op/s] or [-0.012%; +0.012%]NoneNoneNone
credit_card/is_card_number_no_luhn/x371413321323331execution_time[6.435µs; 6.436µs] or [-0.007%; +0.007%]NoneNoneNone
credit_card/is_card_number_no_luhn/x371413321323331throughput[155370112.203op/s; 155392675.909op/s] or [-0.007%; +0.007%]NoneNoneNone

Group 14

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz57a4e3d1760000332dmehala/win-memfd
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000...execution_time534.293µs536.214µs ± 1.613µs535.642µs ± 0.505µs536.584µs539.758µs542.076µs543.089µs1.39%1.8333.3760.30%0.114µs1200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000...throughput1841319.225op/s1864942.381op/s ± 5581.088op/s1866917.141op/s ± 1758.931op/s1868310.025op/s1870249.906op/s1871188.823op/s1871632.438op/s0.25%-1.8153.2890.30%394.643op/s1200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰ててexecution_time383.170µs384.020µs ± 0.341µs384.000µs ± 0.214µs384.216µs384.616µs384.892µs385.006µs0.26%0.2970.0760.09%0.024µs1200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰ててthroughput2597365.186op/s2604030.495op/s ± 2310.183op/s2604167.129op/s ± 1448.625op/s2605563.826op/s2607644.066op/s2608837.685op/s2609807.038op/s0.22%-0.2920.0720.09%163.355op/s1200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Charactersexecution_time190.184µs190.731µs ± 0.287µs190.708µs ± 0.191µs190.911µs191.158µs191.293µs192.500µs0.94%1.2826.0260.15%0.020µs1200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Charactersthroughput5194806.579op/s5243009.752op/s ± 7873.261op/s5243615.696op/s ± 5259.026op/s5248688.938op/s5254671.459op/s5257595.749op/s5258077.216op/s0.28%-1.2545.8280.15%556.724op/s1200
normalization/normalize_service/normalize_service/[empty string]execution_time36.876µs37.077µs ± 0.093µs37.097µs ± 0.061µs37.149µs37.198µs37.220µs37.255µs0.42%-0.504-0.6870.25%0.007µs1200
normalization/normalize_service/normalize_service/[empty string]throughput26842216.870op/s26970868.760op/s ± 67517.638op/s26956111.884op/s ± 44589.234op/s27016028.462op/s27097418.737op/s27115784.405op/s27117545.307op/s0.60%0.512-0.6790.25%4774.218op/s1200
normalization/normalize_service/normalize_service/test_ASCIIexecution_time46.281µs46.823µs ± 0.217µs46.836µs ± 0.145µs46.964µs47.109µs47.196µs48.096µs2.69%0.7134.7670.46%0.015µs1200
normalization/normalize_service/normalize_service/test_ASCIIthroughput20791821.883op/s21357697.950op/s ± 98479.704op/s21350874.621op/s ± 66468.001op/s21426283.411op/s21522641.771op/s21573856.722op/s21607227.185op/s1.20%-0.6294.2830.46%6963.567op/s1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-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%]NoneNoneNone
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000...throughput[1864168.896op/s; 1865715.866op/s] or [-0.041%; +0.041%]NoneNoneNone
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰ててexecution_time[383.973µs; 384.068µs] or [-0.012%; +0.012%]NoneNoneNone
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰ててthroughput[2603710.326op/s; 2604350.664op/s] or [-0.012%; +0.012%]NoneNoneNone
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Charactersexecution_time[190.691µs; 190.770µs] or [-0.021%; +0.021%]NoneNoneNone
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Charactersthroughput[5241918.594op/s; 5244100.911op/s] or [-0.021%; +0.021%]NoneNoneNone
normalization/normalize_service/normalize_service/[empty string]execution_time[37.064µs; 37.090µs] or [-0.035%; +0.035%]NoneNoneNone
normalization/normalize_service/normalize_service/[empty string]throughput[26961511.464op/s; 26980226.055op/s] or [-0.035%; +0.035%]NoneNoneNone
normalization/normalize_service/normalize_service/test_ASCIIexecution_time[46.793µs; 46.853µs] or [-0.064%; +0.064%]NoneNoneNone
normalization/normalize_service/normalize_service/test_ASCIIthroughput[21344049.611op/s; 21371346.290op/s] or [-0.064%; +0.064%]NoneNoneNone

Group 15

cpu_modelgit_commit_shagit_commit_dategit_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz57a4e3d1760000332dmehala/win-memfd
scenariometricminmean ± sdmedian ± madp75p95p99maxpeak_to_median_ratioskewnesskurtosiscvsemrunssample_size
two way interfaceexecution_time17.804µs26.222µs ± 10.123µs18.355µs ± 0.198µs35.169µs45.137µs50.344µs70.400µs283.55%0.9600.51038.51%0.716µs1200
scenariometric95% CI meanShapiro-Wilk pvalueLjung-Box pvalue (lag=1)Dip test pvalue
two way interfaceexecution_time[24.819µs; 27.625µs] or [-5.350%; +5.350%]NoneNoneNone

Baseline

Omitted due to size.

@codecov-commenter
Copy link

codecov-commenter commentedOct 8, 2025
edited
Loading

Codecov Report

❌ Patch coverage is0% with11 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
ComponentsCoverage Δ
datadog-crashtracker49.28% <ø> (-0.05%)⬇️
datadog-crashtracker-ffi5.93% <ø> (ø)
datadog-alloc98.73% <ø> (ø)
data-pipeline88.01% <ø> (ø)
data-pipeline-ffi88.19% <ø> (ø)
ddcommon84.54% <ø> (ø)
ddcommon-ffi73.84% <ø> (ø)
ddtelemetry59.49% <ø> (+0.03%)⬆️
ddtelemetry-ffi21.24% <ø> (ø)
dogstatsd-client83.26% <ø> (ø)
datadog-ipc82.39% <ø> (ø)
datadog-profiling76.90% <ø> (ø)
datadog-profiling-ffi62.12% <ø> (ø)
datadog-sidecar37.01% <ø> (ø)
datdog-sidecar-ffi11.03% <ø> (ø)
spawn-worker55.35% <ø> (ø)
tinybytes92.22% <ø> (ø)
datadog-trace-normalization98.24% <ø> (ø)
datadog-trace-obfuscation94.17% <ø> (ø)
datadog-trace-protobuf59.65% <ø> (ø)
datadog-trace-utils89.84% <ø> (ø)
datadog-tracer-flare54.52% <ø> (ø)
datadog-log76.31% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@datadog-official
Copy link

datadog-officialbot commentedOct 8, 2025
edited by datadog-datadog-prod-us1bot
Loading

✅ Tests

🎉 All green!

❄️ No newflaky tests detected
🧪 Alltests passed

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

@dd-octo-sts
Copy link

dd-octo-stsbot commentedOct 9, 2025
edited
Loading

Artifact Size Benchmark Report

aarch64-alpine-linux-musl
ArtifactBaselineCommitChange
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.so7.25 MB7.25 MB0% (0 B) 👌
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.a71.31 MB71.31 MB+0% (+1.36 KB) 👌
aarch64-unknown-linux-gnu
ArtifactBaselineCommitChange
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.a83.64 MB83.64 MB+0% (+816 B) 👌
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so9.20 MB9.20 MB+0% (+72 B) 👌
libdatadog-x64-windows
ArtifactBaselineCommitChange
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.dll18.50 MB18.59 MB+.47% (+90.00 KB) 🔍
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.lib65.77 KB65.77 KB0% (0 B) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.pdb125.68 MB126.48 MB+.64% (+824.00 KB) 🔍
/libdatadog-x64-windows/debug/static/datadog_profiling_ffi.lib656.43 MB660.64 MB+.64% (+4.21 MB) 🔍
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.dll5.92 MB5.93 MB+.21% (+13.00 KB) 🔍
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.lib65.77 KB65.77 KB0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.pdb17.44 MB17.52 MB+.49% (+88.00 KB) 🔍
/libdatadog-x64-windows/release/static/datadog_profiling_ffi.lib32.40 MB32.56 MB+.49% (+163.06 KB) 🔍
libdatadog-x86-windows
ArtifactBaselineCommitChange
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.dll15.78 MB15.85 MB+.47% (+76.00 KB) 🔍
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.lib66.79 KB66.79 KB0% (0 B) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.pdb128.00 MB128.86 MB+.67% (+880.00 KB) 🔍
/libdatadog-x86-windows/debug/static/datadog_profiling_ffi.lib645.48 MB649.56 MB+.63% (+4.07 MB) 🔍
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.dll4.53 MB4.54 MB+.22% (+10.50 KB) 🔍
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.lib66.79 KB66.79 KB0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.pdb18.57 MB18.66 MB+.46% (+88.00 KB) 🔍
/libdatadog-x86-windows/release/static/datadog_profiling_ffi.lib30.42 MB30.60 MB+.59% (+183.87 KB) 🔍
x86_64-alpine-linux-musl
ArtifactBaselineCommitChange
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.a63.91 MB63.91 MB+0% (+1.07 KB) 👌
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.so8.55 MB8.55 MB0% (0 B) 👌
x86_64-unknown-linux-gnu
ArtifactBaselineCommitChange
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.a78.37 MB78.37 MB+0% (+816 B) 👌
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so9.90 MB9.90 MB0% (0 B) 👌

@dmehaladmehala marked this pull request as ready for reviewOctober 12, 2025 17:47
@dmehaladmehala requested review froma team ascode ownersOctober 12, 2025 17:47
Copy link
Contributor

@gleocadiegleocadie left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

I might have missed it, but do we have test running in CI for that ?

@dmehala
Copy link
ContributorAuthor

I might have missed it, but do we have test running in CI for that ?

nope

)
.context("failed to create a memory file mapping")?;

let addr =MapViewOfFile(handle,FILE_MAP_WRITE,0,0, buf.len());

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

Not a windows dev, but if you are writing a null byte down below on line 173, shouldn't this bebuf.len() + 1?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

+1

}

// EEEEEEEEEHHHH can this be outside of `unsafe`?
let dest = addr.Valueas*mutu8;
Copy link

@pimlupimluOct 23, 2025
edited
Loading

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

Casting to a pointer is safe, but actually using it (like as incopy_nonoverlapping) is unsafe. In practice though, pointer casting gets put into the unsafe code since, how else do you know the pointer is safe to use lol

Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment

Reviewers

@pimlupimlupimlu left review comments

@gleocadiegleocadiegleocadie left review comments

@jack0x2jack0x2jack0x2 left review comments

At least 1 approving review is required to merge this pull request.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

6 participants

@dmehala@codecov-commenter@pimlu@gleocadie@jack0x2

[8]ページ先頭

©2009-2025 Movatter.jp