boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 狗家又open source一个底层C++ library
相关主题
FP更接近人的思维
求建议:C++的TCP/IP编程库
想知道家在linux下都有什么c++ socket library
有人熟悉c++ Qt吗?
11下的多线程
C++11 大家有用过吗?
c++11有了shared_ptr,可以当java用了
问个java String问题
[合集] What does this mean in C++
在C++里处理string用什么比较好?
相关话题的讨论汇总
话题: c++话题: stl话题: 底层话题: 狗家话题: lock
进入Programming版参与讨论
1 (共1页)
p*u
发帖数: 2454
1
号称要成为狗家所有的projects的底层,什么Tensorflow,protobuf之类全要换上。不
过它家的code base看着太费劲,不同种类的methods起名的format还不同,蛋疼。
市面上现在有Boost,POCO,EA家的EASTL,F家的Folly,Bloomberg的BDE,大家对STL
有这么不满意吗?C++的底层轮子已经太多了吧,谁来搞点上面的?
p*u
发帖数: 2454
2
大概看了看,就是从Chromium的底层library里面提取出来的,没啥新鲜东西。
t*******c
发帖数: 288
3
是说这个吗:https://abseil.io/
t*******c
发帖数: 288
4
另外看微博上推荐的concurrent lock-free queue:
https://github.com/cameron314/concurrentqueue
p*u
发帖数: 2454
5


【在 t*******c 的大作中提到】
: 是说这个吗:https://abseil.io/
p*u
发帖数: 2454
6
这种轮子现在不胜枚举了都。

【在 t*******c 的大作中提到】
: 另外看微博上推荐的concurrent lock-free queue:
: https://github.com/cameron314/concurrentqueue

w***g
发帖数: 5958
7
看了下内容, 对普通人基本没有意义. 根本犯不着折腾.
他们要open出一个unicode的string库我就认他们牛x.
tcmalloc还是不错的.

STL

【在 p*u 的大作中提到】
: 号称要成为狗家所有的projects的底层,什么Tensorflow,protobuf之类全要换上。不
: 过它家的code base看着太费劲,不同种类的methods起名的format还不同,蛋疼。
: 市面上现在有Boost,POCO,EA家的EASTL,F家的Folly,Bloomberg的BDE,大家对STL
: 有这么不满意吗?C++的底层轮子已经太多了吧,谁来搞点上面的?

p*u
发帖数: 2454
8
F家用jemalloc,都差不多。

【在 w***g 的大作中提到】
: 看了下内容, 对普通人基本没有意义. 根本犯不着折腾.
: 他们要open出一个unicode的string库我就认他们牛x.
: tcmalloc还是不错的.
:
: STL

c******r
发帖数: 512
9
unicode 的话 IBM ICU 够好了。

【在 w***g 的大作中提到】
: 看了下内容, 对普通人基本没有意义. 根本犯不着折腾.
: 他们要open出一个unicode的string库我就认他们牛x.
: tcmalloc还是不错的.
:
: STL

T********i
发帖数: 2416
10
STL基本数据结构有vector,deque,unordered_map/set就好了。其它的那些比如list
还要额外分配内存,蛋疼。直接剽窃freebsd的queue一个头文件过来就好。
其实我是反对C 那套假模假样的。一个轮子拿来,比学一个新语言都费劲,那种我看
都不看。我选轮子很简单。要没外部依赖的,四个文件以内。
说一些根本的。stl的fstream类,竟然不能cloexec。只要有多进程场合就可能造成
leak。所以我不能用。
曾经boost的sleep_for都不用clock monotonic。改改系统时间就可能长睡不醒。
golang也有过这个毛病。貌似stl早期也有。
我现在就缺filesystem。这是我对boost的唯一依赖。现在貌似没好的替代方案。整个
行业之吹牛扯淡,可见一斑。
在我看来,基本上所有的开源库,架构都有巨大问题。我个人都不能用。nodejs从依赖
libev到自己做libuv。libuv已经不错了。但是他的架构还是不适合服务器端多核IO,
主要是threading model的问题。我不得不自己做一套edge triggered epoll的轮子,
达到前后端架构的统一。
protocol buffer也是,代码都要自动生成。没办法我需要更高的灵活性。更简洁的代
码。只能自己做一套。一个C 类,可以很复杂。如有需要,几行代码,serialize到另
一端,可能是java, js, swift。
事实上,开源对我帮助很大。虽然架构不能用,代码可以随便抄。成百上千行的各种
parser,copy paste再review代码,比自己吭哧吭哧写,强太多。
相关主题
有人熟悉c++ Qt吗?
11下的多线程
C++11 大家有用过吗?
c++11有了shared_ptr,可以当java用了
进入Programming版参与讨论
T********i
发帖数: 2416
11
不懂unicode有啥困难的?百八十行就能utf8到utf32自由转换。我在只有32k内存的mcu
上都能用。
那个lock free queue做的不对。太复杂。use case也没啥意义。我想wdong应该明白。
p*u
发帖数: 2454
12
开源要照顾到所有用户,be as generic as possible,还要尽可能flexible,不能满
足魏老师你的需要是很正常的。

list

【在 T********i 的大作中提到】
: STL基本数据结构有vector,deque,unordered_map/set就好了。其它的那些比如list
: 还要额外分配内存,蛋疼。直接剽窃freebsd的queue一个头文件过来就好。
: 其实我是反对C 那套假模假样的。一个轮子拿来,比学一个新语言都费劲,那种我看
: 都不看。我选轮子很简单。要没外部依赖的,四个文件以内。
: 说一些根本的。stl的fstream类,竟然不能cloexec。只要有多进程场合就可能造成
: leak。所以我不能用。
: 曾经boost的sleep_for都不用clock monotonic。改改系统时间就可能长睡不醒。
: golang也有过这个毛病。貌似stl早期也有。
: 我现在就缺filesystem。这是我对boost的唯一依赖。现在貌似没好的替代方案。整个
: 行业之吹牛扯淡,可见一斑。

T********i
发帖数: 2416
13
所以我根本不搞开源,做一个东西给所有人用,是很扯淡的事情。不如开源代码片段更
好。


: 开源要照顾到所有用户,be as generic as possible,还要尽可能flexible,
不能满

: 足魏老师你的需要是很正常的。

: list



【在 p*u 的大作中提到】
: 开源要照顾到所有用户,be as generic as possible,还要尽可能flexible,不能满
: 足魏老师你的需要是很正常的。
:
: list

w***g
发帖数: 5958
14
你说得对, 是我糊涂了.
lock free的东西boost也有. 特殊情况下是有用的, 但确实没啥普世意义.
我以前做节目推荐的时候有这种情况, 就是内存中要维护一个节目表.
然后推荐请求来了需要扫描这个节目表, 这个频率非常高.
同时偶尔会有新节目来, 需要添加到这个表里面. 表是append-only的.
我的做法是用rw-lock, 可以应付需求.
如果自己手写,因为是append-only, 可以很容易做到lock free, 那样最快.
我估计用lock free的轮子估计速度在中间.
一个系统里这种性能瓶颈一般也就一两个. 如果真到了这一步, 针对特殊
情况特殊写一下, 一般应该也能接受吧.

mcu

【在 T********i 的大作中提到】
: 不懂unicode有啥困难的?百八十行就能utf8到utf32自由转换。我在只有32k内存的mcu
: 上都能用。
: 那个lock free queue做的不对。太复杂。use case也没啥意义。我想wdong应该明白。

w***g
发帖数: 5958
15
我是开源, 但是不卖力写文档. 这样这个东西保证以后自己能用就行.

【在 T********i 的大作中提到】
: 所以我根本不搞开源,做一个东西给所有人用,是很扯淡的事情。不如开源代码片段更
: 好。
:
:
: 开源要照顾到所有用户,be as generic as possible,还要尽可能flexible,
: 不能满
:
: 足魏老师你的需要是很正常的。
:
: list
:

T********i
发帖数: 2416
16
你这个需求。其实就是因为STL vector不是immutable的。
自己做一个append-only list好了。就是一个pointer array,64K pointer。每个
pointer entry指向一个array with 64K items。最多4G items。
10分钟不到,写一个template class,而且是lock-free的。
其实immutability在C/C++中很重要。但是这东西光靠framework enforce很难,不如推
广理念来的实在。

【在 w***g 的大作中提到】
: 你说得对, 是我糊涂了.
: lock free的东西boost也有. 特殊情况下是有用的, 但确实没啥普世意义.
: 我以前做节目推荐的时候有这种情况, 就是内存中要维护一个节目表.
: 然后推荐请求来了需要扫描这个节目表, 这个频率非常高.
: 同时偶尔会有新节目来, 需要添加到这个表里面. 表是append-only的.
: 我的做法是用rw-lock, 可以应付需求.
: 如果自己手写,因为是append-only, 可以很容易做到lock free, 那样最快.
: 我估计用lock free的轮子估计速度在中间.
: 一个系统里这种性能瓶颈一般也就一两个. 如果真到了这一步, 针对特殊
: 情况特殊写一下, 一般应该也能接受吧.

p*u
发帖数: 2454
17
functional programming专门干这个,但是程序写起来太费力。

【在 T********i 的大作中提到】
: 你这个需求。其实就是因为STL vector不是immutable的。
: 自己做一个append-only list好了。就是一个pointer array,64K pointer。每个
: pointer entry指向一个array with 64K items。最多4G items。
: 10分钟不到,写一个template class,而且是lock-free的。
: 其实immutability在C/C++中很重要。但是这东西光靠framework enforce很难,不如推
: 广理念来的实在。

T********i
发帖数: 2416
18
凡是话不好好说,都是反人类的。
任何强制性的理念,都是洗脑。
本来这些都是艺术,既不是科学,也不是技术。运用之妙,存乎一心。

【在 p*u 的大作中提到】
: functional programming专门干这个,但是程序写起来太费力。
w***g
发帖数: 5958
19
其实是C++需要一个immutable的数据结构。不知道为啥这个东西没人去做。

【在 p*u 的大作中提到】
: functional programming专门干这个,但是程序写起来太费力。
p*u
发帖数: 2454
20
凡是没人搞的东东,基本都是吃力不讨好的。

【在 w***g 的大作中提到】
: 其实是C++需要一个immutable的数据结构。不知道为啥这个东西没人去做。
T********i
发帖数: 2416
21
纯粹的immutable性能极差。根本不可行。
所以C 连string都不是immutable的。


: 凡是没人搞的东东,基本都是吃力不讨好的。



【在 p*u 的大作中提到】
: 凡是没人搞的东东,基本都是吃力不讨好的。
1 (共1页)
进入Programming版参与讨论
相关主题
在C++里处理string用什么比较好?
能否创立一个functional programming的版面
设计一个string class,是应该用linked list还是array?
java如何保护传入的参数不被函数改动?
C++ vs Java
从今天开始起,学C++!
怎么这里这么多人学python
Haskell很难学。。
粉FP的人是因为把电脑想象成图灵机了
functional programming?
相关话题的讨论汇总
话题: c++话题: stl话题: 底层话题: 狗家话题: lock