mapnik/mapnik — pull request #2285 by springmeyer (2014-06-25 02:55:21+00:00)
Title: Faster font i/o backported to 2.3.x - refs #2282

@artemp - finally had a chance to backport the faster font reading to 2.3.x.

Will test on windows next. In the meantime - this look good to you (the code changes)?

Benchmarks show sweet improvement:

Before (2.3.x using libc++):

```sh
$ ./benchmark/out/test_face_ptr_creation --threads 10 --iterations 10
font_engine: creating 220000 faces: t:10 i:10 1630 milliseconds
$ ./benchmark/out/test_face_ptr_creation --threads 1 --iterations 100
font_engine: creating 220000 faces: t:1 i:100 240 milliseconds
$ ./benchmark/out/test_font_registration --threads 10 --iterations 10
font registration: t:10 i:10 710 milliseconds
$ ./benchmark/out/test_font_registration --threads 1 --iterations 100
font registration: t:1 i:100 630 milliseconds
```

After:

```sh
$ ./benchmark/out/test_face_ptr_creation --threads 10 --iterations 10
font_engine: creating 220000 faces: t:10 i:10 310 milliseconds
$ ./benchmark/out/test_face_ptr_creation --threads 1 --iterations 100
font_engine: creating 220000 faces: t:1 i:100 100 milliseconds
$ ./benchmark/out/test_font_registration --threads 10 --iterations 10
font registration: t:10 i:10 220 milliseconds
$ ./benchmark/out/test_font_registration --threads 1 --iterations 100
font registration: t:1 i:100 200 milliseconds
```