V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  wcsjtu  ›  全部回复第 2 页 / 共 7 页
回复总数  134
1  2  3  4  5  6  7  
2022-07-25 18:54:37 +08:00
回复了 wcsjtu 创建的主题 Python 请问大家, 有没有办法把 Python 的 dict, 存储到一段连续内存上
@ipwx
@786375312123
@maggch97

我这边是个 NLP 的服务, 只能用 Python 跑…… 而且有个很大的词表, 需要加载到各个进程里。 想在就是想办法节约内存, 同时还得保证性能
2022-07-25 17:40:00 +08:00
回复了 wcsjtu 创建的主题 Python 请问大家, 有没有办法把 Python 的 dict, 存储到一段连续内存上
@TimePPT 想把 Python 的大 dict 存到共享内存里, 节约内存。。。。。
2022-07-25 16:46:35 +08:00
回复了 wcsjtu 创建的主题 Python 请问大家, 有没有办法把 Python 的 dict, 存储到一段连续内存上
@ipwx np.ndarray 是可以的, 但是有两个问题

- np 存字符串太浪费内存了......
- np 没办法存 dict
2022-07-25 16:45:08 +08:00
回复了 wcsjtu 创建的主题 Python 请问大家, 有没有办法把 Python 的 dict, 存储到一段连续内存上
@zyx199199 我还没深入去了解这两个库, 但是根据我理解,这两个库,都是要序列化的......性能不行啊
2022-07-25 16:42:06 +08:00
回复了 wcsjtu 创建的主题 Python 请问大家, 有没有办法把 Python 的 dict, 存储到一段连续内存上
@ipwx 确实是是内存放不下, 单个表大概占 3G 的内存。 这个表确实是只读的。我之前用的就是 fork , 但是 fork 不管用, 对于 Python 来说,由于每次 read 都会改引用计数,所以是 copy-on-read .....
2022-07-25 16:38:39 +08:00
回复了 wcsjtu 创建的主题 Python 请问大家, 有没有办法把 Python 的 dict, 存储到一段连续内存上
@lysS 因为可以扔到共享内存里, 多个进程可以共享一份词表。
2022-07-25 16:03:31 +08:00
回复了 wcsjtu 创建的主题 Python 请问大家, 有没有办法把 Python 的 dict, 存储到一段连续内存上
@qwq11 我觉得自己写很难啊.......
2022-07-25 16:02:15 +08:00
回复了 wcsjtu 创建的主题 Python 请问大家, 有没有办法把 Python 的 dict, 存储到一段连续内存上
@ipwx 嗯, 这种半内存方案, 我们也尝试过, 但是对性能影响比较大。 目前还是希望有一个不需要序列化的方案,貌似就只能用共享内存了
2022-07-25 15:57:05 +08:00
回复了 wcsjtu 创建的主题 Python 请问大家, 有没有办法把 Python 的 dict, 存储到一段连续内存上
@filwaline
@FYFX

用 redis 的话,性能太差了,dict 一次查表, 大概是 10ns 左右, 用 redis 的话, 至少是 us 级别。
2022-07-25 15:35:47 +08:00
回复了 wcsjtu 创建的主题 Python 请问大家, 有没有办法把 Python 的 dict, 存储到一段连续内存上
@liprais 嗯, 但是怎么放进去呢,Python 没有 placement new......
2022-07-25 15:30:25 +08:00
回复了 wcsjtu 创建的主题 Python 请问大家, 有没有办法把 Python 的 dict, 存储到一段连续内存上
@filwaline 确实很罕见的要求, 但是没有别的办法了。Python 有办法把 dict 塞到共享内存里么?
2022-07-25 15:28:15 +08:00
回复了 wcsjtu 创建的主题 Python 请问大家, 有没有办法把 Python 的 dict, 存储到一段连续内存上
@liprais 因为词表很大,要把它塞到共享内存里......
2022-04-11 14:27:38 +08:00
回复了 zealinux 创建的主题 Python Python 有没有好用的性能优化 Profiler 工具?
@windvans 老哥,scalene 怎么针对特定的函数作 profile 啊。 我看它是统计了整个文件的运行时间,连全局的 import 语句的时间也会被统计。 而这些 import 很有可能是在加载模型, 时间会很长。。。。。。

比如说, 下面的代码

```python
import somelib # 加载模型
# ...... 省略部分代码
somelib.process(*args) # 执行推理。 有没有办法只针对这一句做 profile 的
```
2022-03-31 11:40:13 +08:00
回复了 wuwukai007 创建的主题 Python 安装了 python3.10,满吃惊的
在我印象中,CPython 在 3.6 以后的版本中, 对虚拟机内部的实现做了大量的修改, 比如说 FastCall 机制等。 这些确实能提高 Python 本身的性能。但是对于 C/C++实现的第三方库而言, 如果想获得性能提升, 必须主动适配这些新特性。

总之 Python 的性能问题, 不是优化虚拟机本身就行了, 还有大量的第三方库要跟进……这个周期很长(guido 去年的说法是,未来 4 年提升 5 倍, 但我预估还会更长)。。。。。

所以,指望官方的工作来提升 Python 业务性能, 估计得另想它法了。

我们业务对 Python 性能比较敏感(AI 业务, 不得不用 Python), 目前是用自研的编译器,将 Python 代码编译成 native 的库, 尽可能脱离 Python 虚拟机的限制。在 benchmarkgame 中测试结果, 性能高于 PyPy; 在数值计算领域,单核性能与 numba 接近。
2022-03-28 16:39:56 +08:00
回复了 LeeReamond 创建的主题 Python 分享一个自用的 timeit 给代码计时的奇技淫巧
正好我最近也在做类似的事。。。。发表一下个人看法

- 如果只是想自动循环, 修改 with stmt 的 ast, 加上循环语句,然后重新 compile & eval 就行了。

- 不过 Python 的循环会严重干扰实际的性能。 特别是对于 LZ 说的 [生成一个静态元组时是使用列表更快还是元组更快] case, 迭代 range 本身耗时远高于待测试的代码。

- 我觉得还是用 C++写个 repeat 函数靠谱....
这个作者应该是吹牛的, 前后说辞太多互相矛盾的地方。 语法兼容与高性能,是不可能兼顾的
@nomaka ModuleFinder 这个库, 解决了我前几天已经艰难地解决了的问题。 不过, 我现在遇到的困难是,module 已经找到了, 发现它是一个.so, 我要去解析这个.so 里面的类与函数……
@codehz 这个也是个思路, 不过成本太高了……
@VDimos 很好奇 pylint 、mypy 之类的 lint 工具, 是怎么感知到 so 里的类与方法, 然后给出 linting 的呢?
2020-04-21 20:54:03 +08:00
回复了 Breadykid 创建的主题 程序员 刚到家,哭诉人生第一次劳动仲裁的经历
查出公司的对公账户, 然后去法院申请冻结?
1  2  3  4  5  6  7  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1005 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 19ms · UTC 20:36 · PVG 04:36 · LAX 12:36 · JFK 15:36
Developed with CodeLauncher
♥ Do have faith in what you're doing.