sonic-cpp
sonic-cpp copied to clipboard
A fast JSON serializing & deserializing library, accelerated by SIMD.
This PR uses the SVE2 HISTSEG instruction to improve performance of ondemand parsing in ARM cpus https://developer.arm.com/documentation/ddi0602/latest/SVE-Instructions/HISTSEG--Count-matching-elements-in-vector-segments- Creating the bitmasks for each structural character is very expensive in ARM due...
## Key Changes CMake Configuration: Added a new build option ENABLE_SVE to enable SVE support with 256-bit vector size. Updated set_arch_flags.cmake to include SVE-specific compile options. SVE-256bit Implementations: Added SVE-specific...
constexpr size_t kExpectMinifyRatio = 18; size_t estimate = node_nums * kExpectMinifyRatio + 64; wb.Reserve(estimate); inc_len = str_len * 6 + 32 + 3; wb.Grow(inc_len); 想问一下,SerializeImpl这个函数里,writerbuffer初始化的长度和Grow的长度是以什么作为考量的,代码里的这些数字代表什么含义呢?最近执行代码的时候发现这里的内存分配感觉有些问题,
Failed to compile unittests on aarch64 platform. fatal error: immintrin.h: No such file or directory
Failed to compile unittests on aarch64 platform, the error code is: In file included from /home/sonic-cpp/include/sonic/internal/arch/avx2/base.h:24, from /home/sonic-cpp/tests/memcmp_test.cpp:22: /home/sonic-cpp/include/sonic/internal/arch/avx2/simd.h:20:10: fatal error: immintrin.h: No such file or directory 20 | #include...
问题现象 使用【“[[[[[[[[[[[[[[[[[[[[[[ \"\" ]”】字符串进行fuzz测试,链接asan库和添加-fsanitize=address -fsanitize-recover=address选项,报堆内存溢出。 ================================================================= ==166314==ERROR: AddressSanitizer: heap-buffer-overflow on address 0xffffba003fc0 at pc 0xffffbcf5a84c bp 0xffffe8dd4e70 sp 0xffffe8dd4648 READ of size 16 at 0xffffba003fc0 thread T0 #0 0xffffbcf5a848 in...
场景是:举个例子需要输出{"name":"{"obj":1}"},而不是  value是一个json字符串,业务场景现在不想解析这个庞大json字符串,而是直接作为一个object透传,之前使用rapidjson库的RawValue操作来实现,现在想迁移sonic-cpp库,支持这种操作吗,还是需要如何实现呢,我看源码里有setRaw接口,但是不开放。