… | |
… | |
25 | print <<EOF; |
25 | print <<EOF; |
26 | |
26 | |
27 | Version 0.12 introduced experimental C context sharing. This makes it |
27 | Version 0.12 introduced experimental C context sharing. This makes it |
28 | possible to share the C stack and context between many coroutines, |
28 | possible to share the C stack and context between many coroutines, |
29 | resulting in memory savings and slight speed gains, at the cost of |
29 | resulting in memory savings and slight speed gains, at the cost of |
30 | potential segfaults. On my Linux/x86 machine this decreased the size of |
30 | potential segfaults (especially with exception handling). On my Linux/x86 |
31 | a new coroutine from 9k to 5k, the savings are much more apparent on |
31 | machine this decreased the size of a new coroutine from 9k to 5k, the |
32 | machines without mmap or good memory management. This algorithm relies |
32 | savings are much more apparent on machines without mmap or good memory |
33 | on the non-fact that the same machine stack pointer indicates the same |
33 | management. This algorithm relies on the non-fact that the same machine |
34 | function call nesting level, which usually works good enough but might |
34 | stack pointer indicates the same function call nesting level, which |
35 | fail... |
35 | usually works good enough but might fail... |
36 | |
36 | |
37 | Disabling this option is safe, as it only increases memory consumption. |
37 | The default (disabled) is safe, as it only increases memory consumption. |
38 | |
38 | |
39 | EOF |
39 | EOF |
40 | |
40 | |
41 | print "Do you want to enable experimental context sharing (y/n) [n]? "; |
41 | print "Do you want to enable experimental context sharing (y/n) [n]? "; |
42 | |
42 | |