V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  ysc3839  ›  全部回复第 243 页 / 共 583 页
回复总数  11657
1 ... 239  240  241  242  243  244  245  246  247  248 ... 583  
2022-04-26 09:07:15 +08:00
回复了 fawdlstty 创建的主题 C++ libfv:基于 C++20 的异步 HTTP 库
@fawdlstty co_yield 就只是 co_await promise.yield_value(expr) 的语法糖,也不涉及加载现场
https://en.cppreference.com/w/cpp/language/coroutines#co_yield
2022-04-26 03:48:31 +08:00
回复了 Osk 创建的主题 问与答 迷惑 bug: MPC-BE 播放视频时 dwm CPU 占用极高
感觉是没有 Independent Flip ,dwm 会进行合成后再输出,可以用 PresentMon 看看 https://github.com/GameTechDev/PresentMon
不过按理来说只是会增加 GPU 3D 占用,不会使用很多 CPU
可以试试 PotPlayer ,有个选项选带 Flip 的
2022-04-25 21:29:22 +08:00
回复了 Lighthughjiajin 创建的主题 程序员 关于 smaba 和 nfs 的区别?
@eason1874 NFS 和 SMB 都是协议,Samba 是支持 SMB 协议的一个软件。除了 Samba ,ksmbd 也支持 SMB 协议。
2022-04-25 21:24:51 +08:00
回复了 terryops 创建的主题 程序员 手机 App 给 Switch 联机游戏加速是怎么实现的?
你说的这些 app 要使用这个功能的时候需要如何操作?手机需要 root 吗?
2022-04-25 21:09:30 +08:00
回复了 fawdlstty 创建的主题 C++ libfv:基于 C++20 的异步 HTTP 库
@fawdlstty C++ 的 coroutine 并不复杂,主流的实现基本上是把 co_await 拆成 switch case 。简单举例的话,下面这段代码:
```
promise async_func() {
int i = 1;
int cross = test1(i);
co_await awaitable();
test2(cross);
}

void main() {
async_func();
}
```
编译后的结果类似于:
```
struct coro_async_func {
void run() {
switch (current) {
case 0:
{
int i = 1;
cross = test1(i);

current = 1;
awaitable(this);
break;
}
case 1:
test2(cross);
delete this;
break;
}
}
int current = 0;
int cross;
};

void main() {
(new coro_async_func)->run();
}

首先并不涉及“加载现场”,因为要跨越 co_await 的数据本来就保存在非易失的地方,更不涉及 pushad/popad 这种平台相关的操作,因为这套模式本来就是平台无关的。
其次“状态机”并不会很影响性能,主流编译器选择使用状态机实现,而不是拆分成多个函数估计也是有评估过的。
而 coroutine_handle.resume()也就是调用一下其中的 run()函数,和回调函数的性能一致。
至于你后面说的优化那些我就不懂了,我没了解过别的语言的实现。但如果说 C++ coroutine 不如别的语言性能更好的话,那普通回调函数的性能也会不如。
2022-04-25 18:40:13 +08:00
回复了 BruceLi 创建的主题 Android 当前哪个国产安卓手机刷海外固件比较方便?
一加可以免解锁直接刷国际版,小米必须解锁后才能刷
@nowheretoseek 那发 Python 代码看看吧
个人觉得 JScript 准确说是个引擎。JavaScript 的标准名叫 ECMAScript ,然后网景实现了个 ECMAScript 引擎,并把这个引擎支持的语言叫做“JavaScript”。后面微软也实现了一个 ECMAScript 引擎,但可能是商标问题,则把这个引擎支持的语言叫做“JScript”。
所以这只是不同引擎支持的功能不同罢了,你应该去找 JScript 引擎都有哪些 API ,而不是纠结 JScript 和 JavaScript 的区别。

另外怀疑这是个 X-Y Problem https://coolshell.cn/articles/10804.html 建议直接说原始需求
别再通电了,去找数据恢复机构
2022-04-25 12:53:03 +08:00
回复了 erosripe 创建的主题 问与答 如何买瑞幸咖啡
我选择不买,太贵了,感觉也不太合我口味,18 块钱买两杯益禾堂多爽
2022-04-25 12:48:12 +08:00
回复了 NGUP915 创建的主题 问与答 大三学前端,进展缓慢寻求建议
需求推动学习,想一个自己真正用得上的项目,定下目标,然后根据目标去学习。我认识的一些人跟着教程学往往是越学越无聊,最后变成跟着教程敲代码。
这个方案不适合着急找工作的情况。
PyTorch 有 beta 的 ROCm 支持,不然先试试性能如何?不过只能在 Linux 下用。
Windows 下还可以试试 ONNX Runtime​​,可以用 DirectML 。
2022-04-24 18:23:44 +08:00
回复了 fawdlstty 创建的主题 C++ libfv:基于 C++20 的异步 HTTP 库
@fawdlstty 针对这个问题,我简单改了下,先把所有“回调函数”保存到 vector 里,最后再逐个恢复执行 https://godbolt.org/z/noKM31KMf
2022-04-24 17:26:46 +08:00
回复了 fawdlstty 创建的主题 C++ libfv:基于 C++20 的异步 HTTP 库
@hankai17 C++20 的 coroutine 更像是回调函数,不一定要调度器。我写了一段对比 std::function 的代码,可以参考一下 https://godbolt.org/z/sd496fdxP
2022-04-24 12:18:56 +08:00
回复了 fawdlstty 创建的主题 C++ libfv:基于 C++20 的异步 HTTP 库
@fawdlstty 并不是这样,C++ co_await 一个 awaitable 对象时,会调用 awaitable 对象中的 await_suspend() 函数,并传递 coroutine handle ,当需要恢复执行时,只需要调用 coroutine handle 的 resume() 函数即可恢复执行。此处 coroutine handle 就类似一个回调函数。
2022-04-24 10:55:20 +08:00
回复了 fawdlstty 创建的主题 C++ libfv:基于 C++20 的异步 HTTP 库
@fawdlstty C++或 js 的 coroutine 不能直接迁移到 Python 。比如有个函数要求传递回调函数进去,js 可以用 Promise 转为在 async function 中 await ,C++也可以这么做。但是 Python 不行,Python 最多只能用 generator ,在回调函数中调用 next(generator)可以恢复执行。
2022-04-24 10:30:36 +08:00
回复了 fawdlstty 创建的主题 C++ libfv:基于 C++20 的异步 HTTP 库
@fawdlstty 不同语言的 stackless coroutine 不完全一样,比如我前面提到的 Python ,不能实现 C++ 这种“由被 await 的对象控制恢复执行”,必须要一个事件循环,由事件循环来控制恢复执行。js 和 C++的有点类似,也可以由被 await 方恢复执行。C++是给被 await 方一个 coroutine handle ,“调用”这个 handle 恢复执行,而 js 是让被 await 方返回一个 Promise ,通过 Promise 这个中介来恢复执行。
2022-04-24 10:23:56 +08:00
回复了 fawdlstty 创建的主题 C++ libfv:基于 C++20 的异步 HTTP 库
@fawdlstty co_await 不一定要配合线程池用,可以当成回调函数来用,可以配合事件循环。但是事件循环需要跑在一个线程上,侵入性较大,复杂度也高。所以我认为要求不高的情况下用线程池+同步的 http 库会更简单,同时配合 coroutine 可以解决回调地狱的问题。
1 ... 239  240  241  242  243  244  245  246  247  248 ... 583  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2584 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 4076ms · UTC 05:20 · PVG 13:20 · LAX 21:20 · JFK 00:20
Developed with CodeLauncher
♥ Do have faith in what you're doing.