V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  abersheeran  ›  全部回复第 35 页 / 共 88 页
回复总数  1743
1 ... 31  32  33  34  35  36  37  38  39  40 ... 88  
2021-10-12 14:56:12 +08:00
回复了 sujin190 创建的主题 Python 分享一下完全不依赖 asyncio 也支持异步语法的库
我查到了 https://github.com/snower/TorMySQL/blob/master/tormysql/platform/asyncio.py#L83

原来内部还是异步的……只是用 greenlet 把 Coroutine 转成了 Greenlet 。
2021-10-12 14:51:56 +08:00
回复了 sujin190 创建的主题 Python 分享一下完全不依赖 asyncio 也支持异步语法的库
@sujin190 啥?我上面说的是把那个函数包装一个同步 SQL 查询,然后丢进异步 Web 框架里测试的结果,还不如直接在异步框架里跑同步 SQL 查询快,如果用多线程包装的异步调用,那并发能达到四倍。

TorMySQL 我没试,我只有 pg 环境,所以我才问你,你确定这么写能真正的把同步 SQL 查询包装成异步的以提高并发吗?
2021-10-12 14:07:00 +08:00
回复了 sujin190 创建的主题 Python 分享一下完全不依赖 asyncio 也支持异步语法的库
@sujin190 不是,我的意思是 TorMySQL 你确定是一个能有效使用的 MySQL 异步驱动吗?如果这个比直接调用同步函数还慢,那 TorMySQL 岂不是仅挂了一个空壳?
2021-10-12 11:00:58 +08:00
回复了 sujin190 创建的主题 Python 分享一下完全不依赖 asyncio 也支持异步语法的库
async def async_call_method(func, *args, **kwargs):
ioloop = asyncio.get_running_loop()
future = ioloop.create_future()

def finish():
try:
result = func(*args, **kwargs)
if future._callbacks:
ioloop.call_soon(future.set_result, result)
else:
future.set_result(result)
except Exception as e:
if future._callbacks:
ioloop.call_soon(future.set_exception, e)
else:
future.set_exception(e)

child_gr = greenlet.greenlet(finish)
child_gr.switch()

return await future


我还试了你在 TorMySQL 里的函数,单纯用这个函数调用同步函数,比直接调用同步函数还慢一点。
2021-10-12 10:59:14 +08:00
回复了 sujin190 创建的主题 Python 分享一下完全不依赖 asyncio 也支持异步语法的库
@sujin190 #15 我深入研究了一下,发现你说的这个不就是把 asyncio 重新实现了一遍吗?我以为切换过程是自动的,结果是手动的。那这个的意义在哪儿? greenlet 的效率比 generator 也高的有限吧。
2021-10-11 14:39:49 +08:00
回复了 shyrock 创建的主题 Python 阅读 Python 代码的困难
是的,这正是动态类型语言的弱点。所以 JavaScript 有了 TypeScript,Python 有了 Type hint 。

Type hint 的例子 https://github.com/abersheeran/baize,几乎没有 Any,很接近静态类型语言了,读起来应该会比较简单。
@jianhaochende 对。我想了一下,如果你真要在 h11 里实现,只能在 sendfile 之后生成等长度的空白 bytes 丢给 h11,性能会差很多,不过还是要比一点点读文件去发送要快。你可以试试。
@haoliang os.sendfile 不会阻塞。
看到你这个帖子之后我想起来之前 uvicorn 的维护者问我有没有空帮忙实现这个扩展,刚刚写了一下 https://github.com/encode/uvicorn/pull/1210 。你参考参考吧。
GitHub 上向我们提问的原来是你……这个扩展是我设计的,设计之初我想的是追求极致的性能——用 C 、Rust 实现的服务器接受一个文件描述符远比接受一个 PyObject 要更方便处理。

这里你应该用 os.sendfile 而不是 loop.sendfile
不会中文建议去东南亚哈。中国现在没有租界,普通人不会中文吃个饭都费劲,他不可能顿顿去服务员能熟练用英式英语对话的饭店吧。买菜那更别说了,大爷大妈说普通话都够呛,就别指望英式英语了。
2021-09-26 21:33:50 +08:00
回复了 wuwukai007 创建的主题 Python 看了 Django4.0 发行说明 感觉有点失望
@stimw 我再多说几句。我认为没有任何价值观或者所谓的政治正确是永远全部正确、永远全部错误,哪怕是反社会人格,从天道角度来看它也有存在的原因,虽然我个人很反对这种我认为不正确的价值观与政治正确,但我认为只要一个东西有很多人支持就必然有存在的原因和价值。不过这也不是我认同反社会的借口,我支持或反对一个价值观,必然是从我自己的利益和思维出发。但客观上来讲那些我反对的东西并不一定没有存在价值,所以你说的这个“扭曲的价值倾向”我认为是不存在的。只能说是“我反对的价值倾向”。这个我是谁?谁来凭自己的喜好定,就不好说了。

所以我说的“唯技术论”是指技术团队聚在一起的时候只要好好搞你的技术就行了,别的事你们私下怎么搞都没问题,支持或者反对那是另外一回事,但不要污染这个技术团队。
2021-09-26 21:26:22 +08:00
回复了 wuwukai007 创建的主题 Python 看了 Django4.0 发行说明 感觉有点失望
@hysys32 那就是个反面典型。如果他的作者只在自己私人博客发那些东西,没有任何人可以指责他不该发,最多像骂其他人一样骂回去,但是他非要在软件的发布日志里夹杂私货,这就是纯粹的 xx 。哪怕他发的是正面言论,我也觉得他是个 xx,更何况发的是些谣言。
2021-09-26 21:23:37 +08:00
回复了 wuwukai007 创建的主题 Python 看了 Django4.0 发行说明 感觉有点失望
@stimw 技术团队不管内部如何,以团队名义对外发布的公开文章,我认为不要有任何非技术上的事。带任何非技术的事,说明这个技术团队至少不够纯粹的搞技术。

就像你说的,假设技术最屌的那个是个白人至上主义者,不管他私人博客里怎么搞,只要他不拿团队账号带私货,我觉得没有任何问题。
2021-09-26 20:52:01 +08:00
回复了 wuwukai007 创建的主题 Python 看了 Django4.0 发行说明 感觉有点失望
自从 Django 支持黑命贵,而且公开表示“核心团队都是白人是不好的”的时候我就对它的未来彻底失望了。

开源项目在我看来应该“唯技术论”,谁技术好谁上,哪怕这个人是个异形,只要他的技术值得,那他就可以进核心团队。至于其他的,谁在乎?难道你长得好看可以给代码加持,性能提升百分之百、错误率下降百分之五十?

一个开源项目核心团队不把精力放在项目上,而是搞那些有的没的,无论它过去多辉煌,未来一定是个垃圾玩意。
2021-09-26 10:41:58 +08:00
回复了 abersheeran 创建的主题 Python 求一个获取 lambda 对象源代码的方法
@O5oz6z3 一语惊醒梦中人,只要对比源码编译后的 __code__ 就行了。一行最多也就几个 lambda 。


@hsfzxjy 好家伙,不同前缀有点暴力了
2021-09-26 09:44:31 +08:00
回复了 abersheeran 创建的主题 Python 求一个获取 lambda 对象源代码的方法
@hsfzxjy 你这个思路我也想到过,但是有一个问题我不知道该如何解决,比如同一行出现两个 lambda……


@penguinWWY 在 CPython 运行时用 Python 拿 PyBytesObject 的原始指针做不到的吧?


@chenxytw 这个办法我也想过,问题在于重载运算符不能把 and 、or 、not 运算给重载了……
2021-09-25 23:14:28 +08:00
回复了 veoco 创建的主题 Python Django REST framework 项目运行测试时遇到导入出错
requests 这种永恒的经典,你还是别抢名字吧。你这就好像自己写个包叫 os 一样,我都不知道该咋说。照实说我怕我被封号……哎
2021-09-25 11:20:29 +08:00
回复了 xiaolaji 创建的主题 Python 使用 pycharm 遇到问题
你等我翻一下易经看看你是什么问题哈。
一楼哈哈哈,一看就是老安徽人了。确实,在合肥你只能去南京玩。
1 ... 31  32  33  34  35  36  37  38  39  40 ... 88  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5620 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 25ms · UTC 01:35 · PVG 09:35 · LAX 17:35 · JFK 20:35
Developed with CodeLauncher
♥ Do have faith in what you're doing.