Skip to content
This repository

Dec 05, 2010

  1. Konstantin Haase

    On first incoming request in production mode, eliminates some closure…

    …s we
    
    don't have to keep but access frequently.
    
    Without patch:
    
        request   concurrency   req/s    failures
        ==========================================
        1000      1             1058     0
        1000      11            1181     0
        1000      21            1265     0
        1000      31            1258     0
        1000      41            1079     0
        1000      51            1211     0
        1000      61            1239     0
        1000      71            1232     0
        1000      81            1234     0
        1000      91            1149     0
    
    With patch:
    
        request   concurrency   req/s    failures
        ==========================================
        1000      1             1142     0
        1000      11            1501     0
        1000      21            1385     0
        1000      31            1779     0
        1000      41            1404     0
        1000      51            1685     0
        1000      61            1764     0
        1000      72            1371     0
        1000      81            1333     0
        1000      91            1374     0
    rkh authored

Dec 04, 2010

  1. Konstantin Haase

    Improve performance of methods geneterated by #set.

    The produced method are not only faster, but for some reason (probably by not
    creating too many closures), the GC kicks in far less often.
    
    Without:
    
    request   concurrency   req/s    failures
    ==========================================
    1000      1             1034     0
    1000      6             1171     0
    1000      11            1205     0
    1000      16            1221     0
    1000      21            1223     0
    1000      26            1207     0
    1000      31            1226     0
    1000      36            169      0 <= GC
    1000      41            1205     0
    1000      46            1197     0
    1000      51            1240     0
    1000      56            1235     0
    1000      61            600      0 <= GC
    1000      66            1123     0
    1000      71            1222     0
    1000      76            1223     0
    1000      81            270      0 <= GC
    1000      86            1017     0
    1000      91            1194     0
    1000      96            581      0
    
    With optimization:
    
    request   concurrency   req/s    failures
    ==========================================
    1000      1             1245     0
    1000      6             1402     0
    1000      11            1382     0
    1000      16            1424     0
    1000      21            1363     0
    1000      26            1432     0
    1000      31            1254     0
    1000      36            1432     0
    1000      41            1394     0
    1000      46            1682     0
    1000      51            1428     0
    1000      56            1434     0
    1000      61            1446     0
    1000      66            1434     0
    1000      71            1428     0
    1000      76            1429     0
    1000      81            184      0 <= GC
    1000      86            1432     0
    1000      91            1257     0
    1000      96            1424     0
    rkh authored

Dec 03, 2010

  1. Konstantin Haase

    If a simple string is given as pattern, don't create a regexp.

    Without:
    
    request   concurrency   req/s    failures
    ==========================================
    1000      1             1017     0
    1000      11            1010     0
    1000      21            916      0
    1000      31            925      0
    1000      41            1199     0
    1000      51            1206     0
    1000      61            1237     0
    1000      71            1316     0
    1000      81            1275     0
    1000      91            1343     0
    
    With patch:
    
    request   concurrency   req/s    failures
    ==========================================
    1000      1             1622     0
    1000      11            1544     0
    1000      21            1459     0
    1000      31            1632     0
    1000      41            1488     0
    1000      51            1646     0
    1000      61            1595     0
    1000      71            1544     0
    1000      81            1426     0
    1000      91            1556     0
    
    I suspect the performance difference being even bigger on rbx.
    rkh authored
  2. Konstantin Haase

    Revert "Use hwia if available."

    This reverts commit df62aac.
    
    Breaks one test. Probably related to string/symbol mapping hwia is doing
    internally. Have to dig deeper.
    rkh authored
  3. Konstantin Haase

    Use hwia if available.

    This improves performance when generating indifferent hashes (happens at least
    once every request).
    
    For a simple sinatra app (one route with simple params accessing), I get those
    numbers without hwia:
    
    request   concurrency   req/s    failures
    ==========================================
    1000      1             936      0
    1000      11            957      0
    1000      21            876      0
    1000      31            914      0
    1000      41            942      0
    1000      51            956      0
    1000      61            945      0
    1000      71            846      0
    1000      81            954      0
    1000      91            999      0
    
    And with hwia:
    
    request   concurrency   req/s    failures
    ==========================================
    1000      1             932      0
    1000      11            1047     0
    1000      21            1023     0
    1000      31            1178     0
    1000      41            1021     0
    1000      51            1158     0
    1000      61            1438     0
    1000      71            1122     0
    1000      81            1029     0
    1000      91            1018     0
    1000      96            1098     0
    
    For benchmarking I used Thin's abc (which in turn uses ab).
    rkh authored
  4. Konstantin Haase

    Use escape_utils if available.

    This improves Rack's performance when escaping/unescaping URLs.
    For a simple sinatra app (one route returning a string), I get those numbers
    without escape_utils:
    
    request   concurrency   req/s    failures
    ==========================================
    1000      1             952      0
    1000      11            1106     0
    1000      21            1156     0
    1000      31            953      0
    1000      41            1030     0
    1000      51            1140     0
    1000      61            1156     0
    1000      71            1123     0
    1000      81            1119     0
    1000      91            1097     0
    
    And these with escape_utils:
    
    request   concurrency   req/s    failures
    ==========================================
    1000      1             964      0
    1000      11            1178     0
    1000      21            1229     0
    1000      31            1206     0
    1000      41            1236     0
    1000      51            1230     0
    1000      61            1222     0
    1000      71            1206     0
    1000      81            1224     0
    1000      91            1190     0
    
    For benchmarking I used Thin's abc (which in turn uses ab).
    rkh authored
  5. Konstantin Haase

    Add string caching.

    By caching strings that are encountered on every request we reduce the number
    of objects being allocated on every request both improving our memory
    footprint and performance, since the GC won't kick in that often.
    
    For a simple sinatra app (one route returning a string), I get those numbers
    without string caching:
    
    request   concurrency   req/s    failures
    ==========================================
    1000      1             794      0
    1000      11            793      0
    1000      21            863      0
    1000      31            870      0
    1000      41            703      0
    1000      51            741      0
    1000      61            752      0
    1000      71            742      0
    1000      81            305      0
    1000      91            684      0
    
    With string caching:
    
    request   concurrency   req/s    failures
    ==========================================
    1000      1             952      0
    1000      11            1106     0
    1000      21            1156     0
    1000      31            953      0
    1000      41            1030     0
    1000      51            1140     0
    1000      61            1156     0
    1000      71            1123     0
    1000      81            1119     0
    1000      91            1097     0
    
    For benchmarking I used Thin's abc (which in turn uses ab).
    Original proposal by Matt Aimonetti, see GH #105.
    rkh authored

Dec 02, 2010

  1. Some spellchecking in README.de.rdoc

    Signed-off-by: Konstantin Haase <konstantin.mailinglists@googlemail.com>
    Alexander Klink authored rkh committed

Nov 26, 2010

  1. Konstantin Haase

    If file extension is unknown, send_file will always fall back to appl…

    …ication/octet-stream rather than complaining. Fixes #127.
    rkh authored

Nov 21, 2010

  1. Konstantin Haase

    ignore bundler when setting app_file (thus finding the correct views …

    …folder)
    rkh authored

Nov 18, 2010

  1. Luciano Sousa

    Add note to Portugese tanslation.

    Note says:
    
      "Important Note: This document is just a translation of the
        English version and might not be up to date."
    
    Signed-off-by: Konstantin Haase <konstantin.mailinglists@googlemail.com>
    lucianosousa authored rkh committed
  2. Luciano Sousa

    Add Portugese translation.

    Signed-off-by: Konstantin Haase <konstantin.mailinglists@googlemail.com>
    lucianosousa authored rkh committed

Nov 12, 2010

  1. Konstantin Haase

    Add support for passing a block to the markaby method:

        get '/' do
          markaby { h1 'welcome' }
        end
    
    At them moment this only works with Tilt master (mentioned in the README,
    increasing Tilt version in gemspec would make master unusable).
    
    Tests and docs (English only) are, as usual, included.
    rkh authored
  2. Konstantin Haase

    Update CHANGES.

    rkh authored

Nov 11, 2010

  1. Konstantin Haase

    Make neste layout usage independed of the outer template's :layout va…

    …lue. Allows using partials in layouts.
    rkh authored
  2. Andrey Samsonov

    README.* fixed typos

    Signed-off-by: Konstantin Haase <konstantin.mailinglists@googlemail.com>
    kryzhovnik authored rkh committed

Nov 07, 2010

  1. Andrew Hampton

    Fix typo in middleware example.

    Signed-off-by: Konstantin Haase <konstantin.mailinglists@googlemail.com>
    andrewhampton authored rkh committed

Nov 06, 2010

  1. Steve Hodgkiss

    Fix slim options test

    Signed-off-by: Konstantin Haase <konstantin.mailinglists@googlemail.com>
    stevehodgkiss authored rkh committed

Nov 05, 2010

  1. Konstantin Haase

    Add documentation for Slim templates.

    rkh authored
  2. Konstantin Haase

    Fix typo in German README.

    rkh authored
  3. Konstantin Haase

    Fix add_template rake task.

    rkh authored
  4. Konstantin Haase

    Merge branch 'slim'

    rkh authored
  5. Konstantin Haase

    Add task for adding template languages to all READMEs.

    rkh authored
  6. Steve Hodgkiss

    Update slim tests

    Signed-off-by: Konstantin Haase <konstantin.mailinglists@googlemail.com>
    stevehodgkiss authored rkh committed

Nov 04, 2010

  1. Konstantin Haase

    Allow changing request.path_info in a before filter that has a patter…

    …n. Fixes #114.
    rkh authored

Oct 30, 2010

  1. Konstantin Haase

    Only set default charset for specific mime type. Fixes #111.

    rkh authored

Oct 29, 2010

  1. Vasily Polovnyov

    more fixes for russian README

    Signed-off-by: Konstantin Haase <konstantin.mailinglists@googlemail.com>
    vast authored rkh committed
  2. Vasily Polovnyov

    improved, fixed, partly rewritten russian README

    Signed-off-by: Konstantin Haase <konstantin.mailinglists@googlemail.com>
    vast authored rkh committed
  3. Nickolay Schwarz

    Corrections. Thank you shtirlic

    Signed-off-by: Konstantin Haase <konstantin.mailinglists@googlemail.com>
    tjbladez authored rkh committed
  4. Nickolay Schwarz

    Corrections. Thank you vast.

    Signed-off-by: Konstantin Haase <konstantin.mailinglists@googlemail.com>
    tjbladez authored rkh committed
  5. Steve Hodgkiss

    Added slim support

    Signed-off-by: Konstantin Haase <konstantin.mailinglists@googlemail.com>
    stevehodgkiss authored rkh committed

Oct 28, 2010

  1. Nickolay Schwarz

    Статичные -> Статические.

    Signed-off-by: Konstantin Haase <konstantin.mailinglists@googlemail.com>
    tjbladez authored rkh committed
  2. Nickolay Schwarz

    Adding russian readme. ☭ In Soviet Russia thэ woгds гэad yoц ☭

    Signed-off-by: Konstantin Haase <konstantin.mailinglists@googlemail.com>
    tjbladez authored rkh committed

Oct 26, 2010

  1. Konstantin Haase

    Make sure max-age is an integer (as specified by RFC2616). Fixes #106.

    rkh authored

Oct 24, 2010

  1. Konstantin Haase

    1.1.0 release

    rkh authored
Something went wrong with that request. Please try again.