Skip to content

Instantly share code, notes, and snippets.

@katlogic
Last active September 30, 2015 21:22
Show Gist options
  • Select an option

  • Save katlogic/fe43120beb172a3dff51 to your computer and use it in GitHub Desktop.

Select an option

Save katlogic/fe43120beb172a3dff51 to your computer and use it in GitHub Desktop.
Using modified https://github.com/pygy/strung.lua
Patch here: https://gist.github.com/katlogic/51f657379c9417a9f1f5
$ time ~/LuaJIT/src/luajit tests/patterns.lua bench
0.000152,"find"," !#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]","%a+","1"
7.5e-05,"find","","%z","1"
6.6e-05,"find","","[%z]","1"
6.5e-05,"find","","[%z]","1"
6.4e-05,"find","AAAAAA","%f[%l]a","1"
6.5e-05,"find","AAAAAA","%f[%l]","1"
6.6e-05,"find","aAaAb","%f[%l]a","2"
6.4e-05,"find","aAaAb","%f[%l]a","1"
6.4e-05,"find","aAaAb","%f[%l]a","4"
4.2e-05,"find","AaAb","%f[%l]a","1"
6.5e-05,"find","aAb","%f[%l]b","1"
4.2e-05,"find","aAb","%f[%l]a","1"
6.3e-05,"find","fof","[^o]","-4"
4.2e-05,"find","fof","[^o]","-3"
4.2e-05,"find","fof","[^o]","-2"
4.3e-05,"find","fof","[^o]","-1"
6.8e-05,"match","fof","[^o]","-4"
4.3e-05,"match","fof","[^o]","-3"
4.3e-05,"match","fof","[^o]","-2"
4.2e-05,"match","fof","[^o]","-1"
6.6e-05,"match","fof","f","-4"
4.3e-05,"match","fof","f","-3"
4.3e-05,"match","fof","f","-2"
4.3000000000001e-05,"match","fof","f","-1"
7.5e-05,"match","faa:foo:","(.+):(%l+)","1"
6.7999999999999e-05,"match",":foo:","(%l*)","1"
6.7999999999999e-05,"match","faa:foo:",":%l+","1"
6.7e-05,"match","faa:foo:",":(%l+)","1"
6.8e-05,"match","faa:foo:","(%l+)","1"
4.3e-05,"match",":foo:","(%l+)","1"
6.7e-05,"match","foo","%l+","1"
0.000107,"match","foo","foo","1"
7.1e-05,"find","wwS","^wS","2"
6.5999999999999e-05,"find","wwS","^wS","1"
6.6999999999999e-05,"find","wwS","^ww","2"
6.6e-05,"find","wwS","^ww","1"
7.1000000000001e-05,"find","a(f()g(h(d d))[[][]]K)","%b()%b[]","3"
4.3e-05,"find","a(f()g(h(d d))[[][]]K)","%b()%b[]","2"
6.9e-05,"find","a(f()g(h(d d))[[][]]K)","%b()%b[]","1"
6.9e-05,"find","a(f()g(h(d d))K)","%b()","1"
4.3000000000001e-05,"find","a(f()g(h(d d))K","%b()","1"
5.7e-05,"find","foobarfoo","(foo)(bar)%2%1","1"
0.019887,"find","foobarbarfoo","(foo)(bar)%2%1","1"
0.016312,"find","foobarbar","(foo)(bar)%2","1"
6.2e-05,"find","foobarfoo","(foo)(bar)%2","1"
0.018773,"find","foobarfoo","(foo)(bar)%1","1"
7.6e-05,"find","foobarfoo","(foo)bar%1","1"
0.019694,"find","wwS","((w*)S)","1"
0.022001,"find","wwwwS","((w*)%u)","1"
0.023826,"find","wwS","((%l)%u)","1"
0.034673,"find","SSw","((%u)%l)","1"
0.02115,"find","wwS","((%l*)%u)","1"
0.031206,"find","wwS","((%l-)%u)","1"
0.026823,"find","wwS","((w*)%u)","1"
0.025803,"find","wwS","((ww)%u)","1"
0.046015,"find","wwS","((%l*)S)","1"
0.022891,"find","wwS","((%l*))","1"
0.040768,"find","wwSS","()(%u+)()","1"
0.00012200000000001,"find","wwwww]wS","[^%u%]]*","1"
0.000116,"find","%]%]","[%%%]]+","1"
0.00011299999999997,"find","%]]]]%]","[%%]]+","1"
0.000108,"find","wwwwwwS","[^%u]*","1"
0.00010099999999996,"find","wwwwwwS","[^%u]","1"
0.00012499999999999,"find","wwwwwwS","(%l*)","1"
0.00011300000000003,"find","wwSS","(%u+)","1"
0.00010399999999999,"find","wwS","%l%u","1"
0.00010700000000002,"find","wwS","()%l%u","1"
9.0999999999952e-05,"find","wwwwwwS","[^%U]","1"
8.4000000000028e-05,"find","wwwwwwS","[%U]*","1"
0.00010100000000002,"find","wwwwwwS","[%U]+","1"
8.5000000000002e-05,"find","wwwwwwS","%l*","1"
9.1000000000008e-05,"find","wwwwwwS","[%U]","1"
8.5000000000002e-05,"find","wwwwwwS","[%u]","1"
9.1000000000008e-05,"find","wwwwwwS","[%u]*","1"
8.600000000003e-05,"find","wwwwwwS","[^kfdS]*","1"
9.7999999999987e-05,"find","wwS","%l*()","1"
9.5999999999985e-05,"find","wwS","()%u+","1"
9.4999999999956e-05,"find","w(wSESDFB)SFwe)fwe","%(.-%)","1"
9.1000000000008e-05,"find","w(wSESDFB)SFwe)fwe","%(.*%)","1"
9.7000000000014e-05,"find","wawSESDFB)SFweafwe","a.-a","1"
8.9000000000006e-05,"find","wawSESDFBaSFwe)fwe","a.*a","1"
8.7000000000004e-05,"find","a",".","1"
8.7000000000004e-05,"find","a6ruyfhjgjk9",".+","1"
9.1999999999981e-05,"find","wawSESDFBaSFwe)fwe","a[A-Za-z]*a","1"
9.7000000000014e-05,"find","qwwSYUGJHDwefwe","%u+","1"
9.300000000001e-05,"find","wwSESDFBSFwefwe","[A-Z]+","1"
1.0999999999983e-05,"find","SYUGJHD","%u+","1"
1.0999999999983e-05,"find","SESDFBSF","[A-Z]+","1"
2.0999999999993e-05,"find","qwwSYUGJHD","%u+","1"
2.7999999999972e-05,"find","wwSESDFBSF","[A-Z]+","1"
0.00012699999999999,"find","S","%u","1"
0.000114,"find","S","[A-Z]","1"
0.000253,"find","a","a?a","1"
0.00025799999999998,"find","ab","a?b","1"
0.00017299999999998,"find","b","a?b","1"
0.00025400000000003,"find","abbab","a?ba?b$","1"
0.00017400000000001,"find","abbabbab","a?ba?b$","1"
0.00026100000000001,"find","abbabbab","a?ba?ba?ba?ba?b$","1"
0.00027299999999997,"find","abbabbaba","a?ba?ba?ba?ba?b$","1"
0.00013400000000002,"find","aaaabaaaaabbaaaabb$","a+bb$","1"
0.00015100000000001,"find","aaaabaaaaabbaaaabb","a*bb$","1"
0.00014500000000001,"find","aaaaaaaabaaabaaaaabb","a+bb","1"
0.00015500000000002,"find","aaaaaaaabaaabaaaaabb","a*bb","1"
0.000162,"find","aaaaaaaabaaabaaaaab","ba-bb","1"
0.00015299999999996,"find","aaaaaaaabaaabaaaaabb","ba-bb","1"
0.00013200000000002,"find","aaa","a+","1"
5.1999999999996e-05,"find","aaaaaaaaaaaaaaaaaa","a+","1"
real 0m0.395s
user 0m0.380s
sys 0m0.010s
Stock LuaJIT:
0.126484,"find","
!#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]","%a+","1"
0.014339,"find","","%z","1"
0.014838,"find","","[%z]","1"
0.012568,"find","","[%z]","1"
0.027839,"find","AAAAAA","%f[%l]a","1"
0.027794,"find","AAAAAA","%f[%l]","1"
0.01729,"find","aAaAb","%f[%l]a","2"
0.016061,"find","aAaAb","%f[%l]a","1"
0.017385,"find","aAaAb","%f[%l]a","4"
0.018232,"find","AaAb","%f[%l]a","1"
0.020018,"find","aAb","%f[%l]b","1"
0.015951,"find","aAb","%f[%l]a","1"
0.014705,"find","fof","[^o]","-4"
0.014586,"find","fof","[^o]","-3"
0.016196,"find","fof","[^o]","-2"
0.014573,"find","fof","[^o]","-1"
0.014564,"match","fof","[^o]","-4"
0.01449,"match","fof","[^o]","-3"
0.016333,"match","fof","[^o]","-2"
0.015125,"match","fof","[^o]","-1"
0.014123,"match","fof","f","-4"
0.013791,"match","fof","f","-3"
0.014774,"match","fof","f","-2"
0.013714,"match","fof","f","-1"
0.031413,"match","faa:foo:","(.+):(%l+)","1"
0.016001,"match",":foo:","(%l*)","1"
0.019689,"match","faa:foo:",":%l+","1"
0.020809,"match","faa:foo:",":(%l+)","1"
0.017369,"match","faa:foo:","(%l+)","1"
0.018983,"match",":foo:","(%l+)","1"
0.015913,"match","foo","%l+","1"
0.015015,"match","foo","foo","1"
0.01459,"find","wwS","^wS","2"
0.013367,"find","wwS","^wS","1"
0.013166,"find","wwS","^ww","2"
0.014695,"find","wwS","^ww","1"
0.017496,"find","a(f()g(h(d d))[[][]]K)","%b()%b[]","3"
0.01992,"find","a(f()g(h(d d))[[][]]K)","%b()%b[]","2"
0.020277,"find","a(f()g(h(d d))[[][]]K)","%b()%b[]","1"
0.015338,"find","a(f()g(h(d d))K)","%b()","1"
0.01669,"find","a(f()g(h(d d))K","%b()","1"
0.010647,"find","foobarfoo","(foo)(bar)%2%1","1"
0.009544,"find","foobarbarfoo","(foo)(bar)%2%1","1"
0.009208,"find","foobarbar","(foo)(bar)%2","1"
0.010823,"find","foobarfoo","(foo)(bar)%2","1"
0.009355,"find","foobarfoo","(foo)(bar)%1","1"
0.008343,"find","foobarfoo","(foo)bar%1","1"
0.008305,"find","wwS","((w*)S)","1"
0.008597,"find","wwwwS","((w*)%u)","1"
0.009257,"find","wwS","((%l)%u)","1"
0.009278,"find","SSw","((%u)%l)","1"
0.0087430000000001,"find","wwS","((%l*)%u)","1"
0.009645,"find","wwS","((%l-)%u)","1"
0.0084689999999999,"find","wwS","((w*)%u)","1"
0.008177,"find","wwS","((ww)%u)","1"
0.008926,"find","wwS","((%l*)S)","1"
0.008108,"find","wwS","((%l*))","1"
0.0090739999999999,"find","wwSS","()(%u+)()","1"
0.006463,"find","wwwww]wS","[^%u%]]*","1"
0.005267,"find","%]%]","[%%%]]+","1"
0.004781,"find","%]]]]%]","[%%]]+","1"
0.0060300000000001,"find","wwwwwwS","[^%u]*","1"
0.0042700000000001,"find","wwwwwwS","[^%u]","1"
0.0078000000000001,"find","wwwwwwS","(%l*)","1"
0.007857,"find","wwSS","(%u+)","1"
0.0050540000000001,"find","wwS","%l%u","1"
0.007147,"find","wwS","()%l%u","1"
0.007522,"find","wwwwwwS","[^%U]","1"
0.0058559999999999,"find","wwwwwwS","[%U]*","1"
0.0057879999999999,"find","wwwwwwS","[%U]+","1"
0.005188,"find","wwwwwwS","%l*","1"
0.004311,"find","wwwwwwS","[%U]","1"
0.0074139999999998,"find","wwwwwwS","[%u]","1"
0.0047220000000001,"find","wwwwwwS","[%u]*","1"
0.0061610000000001,"find","wwwwwwS","[^kfdS]*","1"
0.0067190000000001,"find","wwS","%l*()","1"
0.007174,"find","wwS","()%u+","1"
0.0080149999999999,"find","w(wSESDFB)SFwe)fwe","%(.-%)","1"
0.0074319999999999,"find","w(wSESDFB)SFwe)fwe","%(.*%)","1"
0.008675,"find","wawSESDFB)SFweafwe","a.-a","1"
0.0083900000000001,"find","wawSESDFBaSFwe)fwe","a.*a","1"
0.0040730000000002,"find","a",".","1"
0.0047170000000001,"find","a6ruyfhjgjk9",".+","1"
0.0086039999999998,"find","wawSESDFBaSFwe)fwe","a[A-Za-z]*a","1"
0.0061120000000001,"find","qwwSYUGJHDwefwe","%u+","1"
0.0064510000000002,"find","wwSESDFBSFwefwe","[A-Z]+","1"
0.0053810000000001,"find","SYUGJHD","%u+","1"
0.005484,"find","SESDFBSF","[A-Z]+","1"
0.0060470000000001,"find","qwwSYUGJHD","%u+","1"
0.0063629999999999,"find","wwSESDFBSF","[A-Z]+","1"
0.0040629999999999,"find","S","%u","1"
0.0041559999999998,"find","S","[A-Z]","1"
0.072234,"find","a","a?a","1"
0.07035,"find","ab","a?b","1"
0.068353,"find","b","a?b","1"
0.107325,"find","abbab","a?ba?b$","1"
0.162718,"find","abbabbab","a?ba?b$","1"
0.094954,"find","abbabbab","a?ba?ba?ba?ba?b$","1"
0.339231,"find","abbabbaba","a?ba?ba?ba?ba?b$","1"
0.082189,"find","aaaabaaaaabbaaaabb$","a+bb$","1"
0.081938,"find","aaaabaaaaabbaaaabb","a*bb$","1"
0.091597,"find","aaaaaaaabaaabaaaaabb","a+bb","1"
0.107263,"find","aaaaaaaabaaabaaaaabb","a*bb","1"
0.046091,"find","aaaaaaaabaaabaaaaab","ba-bb","1"
0.039926,"find","aaaaaaaabaaabaaaaabb","ba-bb","1"
0.01453,"find","aaa","a+","1"
0.017664,"find","aaaaaaaaaaaaaaaaaa","a+","1"
real 0m2.576s
user 0m2.570s
sys 0m0.000s
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment