Skip to content
This repository has been archived by the owner on Jun 1, 2023. It is now read-only.

HEK_STATIC: seperate COW with LEN=0 from shared COW heks #107

Closed
rurban opened this issue Feb 8, 2016 · 1 comment
Closed

HEK_STATIC: seperate COW with LEN=0 from shared COW heks #107

rurban opened this issue Feb 8, 2016 · 1 comment

Comments

@rurban
Copy link
Member

rurban commented Feb 8, 2016

p5p perl assumes that every static COW string (LEN=0) needs to be a shared hek.
But we need it to be a normal static string to get rid of the 20% memory increase, and use the cow flag
to be able to use it as proper cow string. copy away when being written to.

we use the cperl HEK_STATIC flag to omit freeing such a HEK, and use real static shared hek's then.

@rurban rurban changed the title static strings: seperate COW with LEN=0 from shared COW heks HEK_STATIC: seperate COW with LEN=0 from shared COW heks Feb 8, 2016
rurban pushed a commit that referenced this issue Feb 10, 2016
to be able to use them in the compiler
as static IsCOW strings with LEN=0.

See GH #107 and the compiler branch pvcog (B-C-1.53_09)
@rurban rurban closed this as completed Feb 10, 2016
@rurban
Copy link
Member Author

rurban commented Feb 10, 2016

6% memory win with perlcc -O3 -S -e'use Net::DNS::Resolver; my $res = Net::DNS::Resolver->new; $res->send("www.google.com"); print ps -p $$ -O rss,vsz,pmem'

rurban added a commit that referenced this issue Aug 27, 2018
4.06 2018-08-22 (rurban)
        - Fix overloaded eq/ne comparisons (GH #116 by demerphq, GH #117 by Graham Knopp):
          detect strings, protect from endless recursion. false is now ne "True".
          clarify eq/ne rules in the docs.

4.05 2018-08-19 (rurban)
        - Set decoded type (PR #115 by Pali)
        - Add json_type_weaken (PR #114 by Pali)
        - Fix tests for 5.6 (rurban, pali)

4.04 2018-06-22 (rurban)
        - Fix bignum NaN/inf handling (#78 reported by Slaven Rezic)
        - Move author tests to xt/ as suggested in #106, added a make xtest target.
          Fixes a test fail with ASAN.

4.03 2018-06-21 (rurban)
        - Add sereal cpanel_json_xs type (#110 James Rouzier)
        - Fix bencode/bdecode methods in cpanel_json_xs (#111 Fulvio Scapin)
        - Overload ne operator for JSON::PP::Boolean (#107 tevfik1903)
        - Add a missing semicolon to a documentation example (#104 E. Choroba)

4.02 2018-02-27 (rurban)
        - Add encoder indent_length method (#103 rouzier), previously
          hard-coded to 3.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant