[PHP] 业务逻辑大内存占用的优化思路, yield 和 chunk

通过llama.cpp与羊驼聊天的网页界面- 详解 Serge 的启动使用

 

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
header("content-type:text/html;charset=utf-8");
function readTxt() {
    $handle = fopen("./test.txt", 'rb');
 
    while (feof($handle)===false) {
        yield fgets($handle);
    }
 
    fclose($handle);
}
 
foreach (readTxt() as $key => $value) {
    echo $value.'<br />';
}

yield 生成器允许你 在 foreach 代码块中写代码来迭代一组数据而不需要在内存中创建一个数组。

每次被加载到内存中的文字只有一行,大大的减小了内存的使用。

 

另一种方式是数组不叠加,而是重新赋值;分次读取就是类似SQL 中的 limit 分页操作。

 

Refer:php_yield

Link:https://www.cnblogs.com/farwish/p/15908880.html

posted on   ercom  阅读(102)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2020-02-25 [Contract] Solidity 遍历 mapping 的一种方式
2020-02-25 [Contract] Solidity 判断 mapping 值的存在
2020-02-25 [Contract] public、external, private、internal 在 Solidity 中如何选择
2019-02-25 [Kafka] |FAIL|rdkafka#producer-1 : Receive failed: Disconnected

统计

点击右上角即可分享
微信分享提示