Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- / =====================================================================================
- / Filename: benchmark.q
- / Description: Load Several C/C++ regular expression libraries into Q
- / Test the libraries on a various hex strings increasing in length
- / Test the hex strings on an increasing number of signatures
- / Version: 1.0
- / Created: 23/02/12 15:42:19
- / Author: Oliver Fletcher, ttolf@lboro.ac.uk
- / University: Loughborough University
- / =====================================================================================
- regexp:`pcre 2:(`regexp;2); / Load pcre re2 boost xpressive
- regexr:`re2 2:(`regexp;2);
- regexb:`boost 2:(`regexp;2);
- regexx:`xpressive 2:(`regexp;2);
- hex:"0123456789abcdef"; / used to randomly generate hex data
- kb10:20000?hex; / create strings of length 10kb 100kb
- kb100:200000?hex; / and 1mb
- mb1:2000000?hex;
- v1:1#virus_sigs[`hexsig]; / select 1,25...100 hex signatures
- v2:25#virus_sigs[`hexsig];
- v3:50#virus_sigs[`hexsig];
- v4:75#virus_sigs[`hexsig];
- v5:100#virus_sigs[`hexsig];
- 1 "benchmarking pcre library"; / begin bench marking pcre saving
- / the time and save to table pcre
- a1:value "\\t regexp[kb10;]peach v1";
- a2:value "\\t regexp[kb10;]peach v2";
- a3:value "\\t regexp[kb10;]peach v3";
- a4:value "\\t regexp[kb10;]peach v4";
- a5:value "\\t regexp[kb10;]peach v5";
- a6:value "\\t regexp[kb100;]peach v1";
- a7:value "\\t regexp[kb100;]peach v2";
- a8:value "\\t regexp[kb100;]peach v3";
- a9:value "\\t regexp[kb100;]peach v4";
- a10:value "\\t regexp[kb100;]peach v5";
- a11:value "\\t regexp[mb1;]peach v1";
- a12:value "\\t regexp[mb1;]peach v2";
- a13:value "\\t regexp[mb1;]peach v3";
- a14:value "\\t regexp[mb1;]peach v4";
- a15:value "\\t regexp[mb1;]peach v5";
- pcre:([]file:(`10kb`100kb`1mb);sig1:(a1;a6;a11);sig25:(a2;a7;a12);sig50:(a3;a8;a13);sig75:(a4;a9;a14);sig100:(a5;a10;a15));
- 1 "benchmarking re2 library"; / begin bench marking pcre saving
- / the time and save to table pcre
- a1:value "\\t regexr[kb10;]peach v1";
- a2:value "\\t regexr[kb10;]peach v2";
- a3:value "\\t regexr[kb10;]peach v3";
- a4:value "\\t regexr[kb10;]peach v4";
- a5:value "\\t regexr[kb10;]peach v5";
- a6:value "\\t regexr[kb100;]peach v1";
- a7:value "\\t regexr[kb100;]peach v2";
- a8:value "\\t regexr[kb100;]peach v3";
- a9:value "\\t regexr[kb100;]peach v4";
- a10:value "\\t regexr[kb100;]peach v5";
- a11:value "\\t regexr[mb1;]peach v1";
- a12:value "\\t regexr[mb1;]peach v2";
- a13:value "\\t regexr[mb1;]peach v3";
- a14:value "\\t regexr[mb1;]peach v4";
- a15:value "\\t regexr[mb1;]peach v5";
- re2:([]file:(`10kb`100kb`1mb);sig1:(a1;a6;a11);sig25:(a2;a7;a12);sig50:(a3;a8;a13);sig75:(a4;a9;a14);sig100:(a5;a10;a15));
- "benchmarking boost library" / begin bench marking pcre saving
- / the time and save to table pcre
- a1:value "\\t regexb[kb10;]peach v1";
- a2:value "\\t regexb[kb10;]peach v2";
- a3:value "\\t regexb[kb10;]peach v3";
- a4:value "\\t regexb[kb10;]peach v4";
- a5:value "\\t regexb[kb10;]peach v5";
- a6:value "\\t regexb[kb100;]peach v1";
- a7:value "\\t regexb[kb100;]peach v2";
- a8:value "\\t regexb[kb100;]peach v3";
- a9:value "\\t regexb[kb100;]peach v4";
- a10:value "\\t regexb[kb100;]peach v5";
- a11:value "\\t regexb[mb1;]peach v1";
- a12:value "\\t regexb[mb1;]peach v2";
- a13:value "\\t regexb[mb1;]peach v3";
- a14:value "\\t regexb[mb1;]peach v4";
- a15:value "\\t regexb[mb1;]peach v5";
- boost:([]file:(`10kb`100kb`1mb);sig1:(a1;a6;a11);sig25:(a2;a7;a12);sig50:(a3;a8;a13);sig75:(a4;a9;a14);sig100:(a5;a10;a15));
- "benchmarking xpressive library" / begin bench marking pcre saving
- / the time and save to table pcre
- a1:value "\\t regexx[kb10;]peach v1";
- a2:value "\\t regexx[kb10;]peach v2";
- a3:value "\\t regexx[kb10;]peach v3";
- a4:value "\\t regexx[kb10;]peach v4";
- a5:value "\\t regexx[kb10;]peach v5";
- a6:value "\\t regexx[kb100;]peach v1";
- a7:value "\\t regexx[kb100;]peach v2";
- a8:value "\\t regexx[kb100;]peach v3";
- a9:value "\\t regexx[kb100;]peach v4";
- a10:value "\\t regexx[kb100;]peach v5";
- a11:value "\\t regexx[mb1;]peach v1";
- a12:value "\\t regexx[mb1;]peach v2";
- a13:value "\\t regexx[mb1;]peach v3";
- a14:value "\\t regexx[mb1;]peach v4";
- a15:value "\\t regexx[mb1;]peach v5";
- xpressive:([]file:(`10kb`100kb`1mb);sig1:(a1;a6;a11);sig25:(a2;a7;a12);sig50:(a3;a8;a13);sig75:(a4;a9;a14);sig100:(a5;a10;a15));
- save `:pcre.txt / save the tables as text to be
- save `:re2.txt / manimpulated into graphs
- save `:boost.txt
- save `:xpressive.txt
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement