V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  abersheeran  ›  全部回复第 60 页 / 共 88 页
回复总数  1752
1 ... 56  57  58  59  60  61  62  63  64  65 ... 88  
2021-03-27 14:12:33 +08:00
回复了 zictos 创建的主题 Python Python 读写文件时不用 with 也不关闭文件,这样的风格好吗?
@zictos 楼上说的 pathlib 就是标准库。任何 Python3 的环境你都可以用。
pydantic 是 json <--> dict <--> obj 而且仅支持它写了的类型

楼主的需要应该用标准库里的 object_hook 参数解决。另外,随手给你搜了一下 “python parse json to obj” 第一个回答是 https://stackoverflow.com/questions/6578986/how-to-convert-json-data-into-a-python-object 楼主可以试试。
我的工作就是造轮子+趟坑。比如这几个月的工作,我在业务里完善了 index-py 这个 Python Web 框架,写了一个带自动迁移功能的 ORM,这周在学 k8s,下一步估计是把我之前写的 rpc-py 投入实际生产……
2021-03-22 23:18:25 +08:00
回复了 jiang1234321 创建的主题 Linux 问一个磁盘顺序写入的问题
是的。楼主想法没错。所以一般这里会采取 mmap,让操作系统自己想办法整活,我们就别管了。
2021-03-22 18:40:52 +08:00
回复了 mimzy 创建的主题 Python Python 如何高效地将 JSON 反序列化为对象
@mimzy fastapi 速度还没 aiohttp 快呢。它的性能全靠吹。
2021-03-22 14:40:38 +08:00
回复了 mimzy 创建的主题 Python Python 如何高效地将 JSON 反序列化为对象
@mimzy 虽然我也是 pydantic 的重度使用者。
2021-03-22 14:40:24 +08:00
回复了 mimzy 创建的主题 Python Python 如何高效地将 JSON 反序列化为对象
@mimzy 另外一提,如果你没有用 pydantic 提供的 Cython 编译后的版本,其实它的速度和 attrs 之流差不多甚至慢一些。有时候觉得 pydantic 、fastapi 这些家伙的宣传挺可耻的……虚假宣传
2021-03-22 13:37:58 +08:00
回复了 mimzy 创建的主题 Python Python 如何高效地将 JSON 反序列化为对象
@mimzy 如果你只是需要代码提示,TypedDict 永远的神……https://github.com/abersheeran/baize/blob/master/baize/typing.py#L66
2021-03-22 12:18:35 +08:00
回复了 mimzy 创建的主题 Python Python 如何高效地将 JSON 反序列化为对象
有一个问题,你需要进行默认值的填充和参数校验吗?如果你不需要这些。

写一个类似于这里面的 https://github.com/abersheeran/index.py/blob/master/indexpy/utils.py#L50 类就行了。基本思路是使用三个魔术方法来自定义 obj.attr 的行为。比起其他需要校验、填充默认值的玩意,快不止一个数量级,因为这里压根就没有 COPY 的损耗。
2021-03-22 00:37:53 +08:00
回复了 lesismal 创建的主题 分享创造 NBIO 第二弹 —— 支持 Non-Blocking HTTP 1.x
@FucUrFrd 什么脑残玩意。见到这种嘴上说着无国界,却让人改用其他自然语言的人,我见一个骂一个。你最好也 block 我。
2021-03-21 01:29:09 +08:00
回复了 monetto 创建的主题 Python 如何减轻 Python Flask 服务的性能消耗
@monetto 那就 bottle 。
2021-03-19 11:21:04 +08:00
回复了 lesismal 创建的主题 分享创造 NBIO 第二弹 —— 支持 Non-Blocking HTTP 1.x
@abersheeran 缺陷之二再补充一下说明:无栈协程需要程序员自己时刻牢记自己每一步操作是否会带来同步 IO 操作。上述只是拿了文件举例,实际上应该有更多的操作是同步的,都需要程序员自己去权衡线程池如何安排。
2021-03-19 11:17:16 +08:00
回复了 lesismal 创建的主题 分享创造 NBIO 第二弹 —— 支持 Non-Blocking HTTP 1.x
如上所述的性能差异说到底就是有栈协程和无栈协程的性能差异。

我个人选有栈协程,也就是 golang 这一套。因为写代码方便,有栈协程无感染性。虽然我一直沉浸在 Python 的无栈协程里跑不出来。

无栈协程的性能缺陷:文件 IO 需要走多线程通过回调包装成异步的,如果细扣到有栈无栈这个地步,那么这个包装其实还是很浪费资源的。而有栈协程不需要这么包装,在有栈协程里调任何同步 IO 都没事,都可以挂起。
缺陷之二:感染性。如上述,文件 IO 之类的同步 IO 必须包装起来,但是传统编程里很多文件 IO 是程序员自己都不不注意的,比如 file.exits()、path.is_dir() 之类的。如果要把无栈协程的性能发挥到极致,这些必须都包装起来。但如果只是简单粗暴的多线程跑,线程切换其实比这种少量 IO 还要耗资源。这里就很难优化好。

老哥你这个帖子没啥人回复,估计是因为学 golang 的人跟我想法差不多,都更喜欢有栈协程,所以对你这个兴趣不大。
2021-03-19 11:04:56 +08:00
回复了 ClericPy 创建的主题 Python 有谁遇到过 aiohttp Got more than 8190 bytes Headers 相关的错误了吗
@ClericPy 你说测这个啊,那的确是 aiohttp 更快,毕竟有 C 加持。不过一般发请求的客户端速度瓶颈都在目标服务器啊。
2021-03-19 10:07:01 +08:00
回复了 ClericPy 创建的主题 Python 有谁遇到过 aiohttp Got more than 8190 bytes Headers 相关的错误了吗
@ClericPy 不对吧。我记得 aiohttp 的客户端性能没比 httpx 好到哪儿去。也就服务端性能不错。
2021-03-18 14:12:34 +08:00
回复了 ClericPy 创建的主题 Python 有谁遇到过 aiohttp Got more than 8190 bytes Headers 相关的错误了吗
httpx yes !
1 ... 56  57  58  59  60  61  62  63  64  65 ... 88  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1000 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 75ms · UTC 23:45 · PVG 07:45 · LAX 16:45 · JFK 19:45
Developed with CodeLauncher
♥ Do have faith in what you're doing.