ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/perlmulticore/perlmulticore.pod
(Generate patch)

Comparing perlmulticore/perlmulticore.pod (file contents):
Revision 1.9 by root, Sun Mar 3 10:59:48 2019 UTC vs.
Revision 1.10 by root, Mon Mar 4 06:34:59 2019 UTC

267 267
268 $existing_hash{perl_multicore_api} = "123456781234567812345678"; 268 $existing_hash{perl_multicore_api} = "123456781234567812345678";
269 269
270And that's it, which is, as I think, indeed very little. 270And that's it, which is, as I think, indeed very little.
271 271
272As for code size, on my amd64 system, every call to C<perlinterp_release> 272As for code size and speed, on my amd64 system, every call to
273or C<perlinterp_acquire> results in a variation of the following 9-10 273C<perlinterp_release> or C<perlinterp_acquire> results in a variation of
274octet sequence: 274the following 9-10 octet sequence which is easy to predict for modern
275CPUs, as the function pointer is constant after initialisation:
275 276
276 150> mov 0x200f23(%rip),%rax # <perl_multicore_api> 277 150> mov 0x200f23(%rip),%rax # <perl_multicore_api>
277 157> callq *0x8(%rax) 278 157> callq *0x8(%rax)
279
280The actual function being called when no backend is installed or enabled
281looks like this:
282
283 1310> retq
278 284
279The biggest part is the initialisation code, which consists of 11 lines of 285The biggest part is the initialisation code, which consists of 11 lines of
280typical XS code. On my system, all the code in F<perlmulticore.h> compiles 286typical XS code. On my system, all the code in F<perlmulticore.h> compiles
281to less than 160 octets of read-only data. 287to less than 160 octets of read-only data.
282 288

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines