PHP开发日志——循环和条件语句嵌套不同,效率不同(循环内加入条件语句,条件语句判断后加入循环,array_map函数中加入条件语句)
十多年前开发框架时,为了效率不断试过各种代码写法,今天又遇到了,想想php8时代会不会有所变化,结果其实也还是和当年一样,但当年没写博客,但现在可以把数据记录下来了。
PHP_loop_ireflies_dark_forest
项目基本情况是一个考试系统调用题库后,根据是否需要随机出选项和是否需要统一改分数这两个条件,循环对每一道题的初始数据进行修改。我是从类的方法里直接截取的代码片段,所以代码部分只需懂意思即可,命名都很容易理解。
$result是数据库里提取的题库;$score是统一的题型分数(如果没有统一题型分数,那么每题都有自己不同的初始分);$this->l_char->json_to_array()是char字符类json转化为数组格式的方法;$this->_random_option()是随机化题目选项;- 目前题库共有
3328题,每个题型所含题目数量不同; - PHP版本为
8.1.3
为了保证尽量每种方法的实验数据在一个条件下,所以禁用随机出题,保证题目都一样,同时保证每题的选项都在随机变化。

判断后循环
if(!empty($score) and !empty($israndomoption))
{ foreach($result as $k=>$row){//分数$row['questionscore'] = $score;//选项是否随机$row['questionoption'] = $this->l_char->json_to_array($row['questionoption']);$row['questionoption'] = $this->_random_option($row['questionoption']);$result[$k] = $row;}
}elseif(!empty($score)){ foreach($result as $k=>$row){//分数$row['questionscore'] = $score;$result[$k] = $row;}
}elseif(!empty($israndomoption)){ foreach($result as $k=>$row){//选项是否随机$row['questionoption'] = $this->l_char->json_to_array($row['questionoption']);$row['questionoption'] = $this->_random_option($row['questionoption']);$result[$k] = $row;}
}
某题型有2题
| 次数 | 执行时间 | 内存占用 |
|---|---|---|
| 1 | 0.000015 | 1539528 |
| 2 | 0.000017 | 1543376 |
| 3 | 0.000015 | 1543280 |
| 4 | 0.000015 | 1543280 |
| 5 | 0.000016 | 1543280 |
| 6 | 0.000016 | 1543280 |
| 7 | 0.000017 | 1543280 |
| 8 | 0.000038 | 1543280 |
| 9 | 0.000017 | 1543280 |
| 10 | 0.000015 | 1543280 |
某题型有20题
| 次数 | 执行时间 | 内存占用 |
|---|---|---|
| 1 | 0.000026 | 1551272 |
| 2 | 0.000025 | 1560240 |
| 3 | 0.000026 | 1560656 |
| 4 | 0.000027 | 1560656 |
| 5 | 0.000027 | 1560656 |
| 6 | 0.000044 | 1560656 |
| 7 | 0.000026 | 1560656 |
| 8 | 0.000027 | 1560656 |
| 9 | 0.000026 | 1560656 |
| 10 | 0.000026 | 1560656 |
某题型有50题
| 次数 | 执行时间 | 内存占用 |
|---|---|---|
| 1 | 0.000080 | 1805832 |
| 2 | 0.000078 | 1868048 |
| 3 | 0.000076 | 1868464 |
| 4 | 0.000077 | 1868464 |
| 5 | 0.000085 | 1868464 |
| 6 | 0.000078 | 1868464 |
| 7 | 0.000084 | 1868464 |
| 8 | 0.000087 | 1868464 |
| 9 | 0.000088 | 1868464 |
| 10 | 0.000083 | 1868464 |
每题题型数量不限
| 次数 | 题型1执行时间 | 题型1内存占用 | 题型2执行时间 | 题型2内存占用 | 题型3执行时间 | 题型3内存占用 | 题型4执行时间 | 题型4内存占用 | 题型5执行时间 | 题型5内存占用 |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 0.000584 | 2343488 | 0.000460 | 2740296 | 0.000226 | 2875520 | 0.000202 | 3298600 | 0.000506 | 3809024 |
| 2 | 0.000569 | 2343488 | 0.000470 | 2740296 | 0.000239 | 2875520 | 0.000253 | 3298600 | 0.000737 | 3809024 |
| 3 | 0.000584 | 2831656 | 0.000472 | 3228464 | 0.000244 | 3363688 | 0.000203 | 3786768 | 0.000558 | 4297192 |
| 4 | 0.000637 | 2832104 | 0.000506 | 3228912 | 0.000371 | 3364136 | 0.000192 | 3787216 | 0.000492 | 4297640 |
| 5 | 0.000571 | 2832104 | 0.000479 | 3228912 | 0.000234 | 3364136 | 0.000203 | 3787216 | 0.000502 | 4297640 |
| 6 | 0.000594 | 2832104 | 0.000475 | 3228912 | 0.000235 | 3364136 | 0.000226 | 3787216 | 0.000491 | 4297640 |
| 7 | 0.000612 | 2832104 | 0.000529 | 3228912 | 0.000241 | 3364136 | 0.000338 | 3787216 | 0.000785 | 4297640 |
| 8 | 0.000579 | 2832104 | 0.000538 | 3228912 | 0.000239 | 3364136 | 0.000203 | 3787216 | 0.000484 | 4297640 |
| 9 | 0.000588 | 2343488 | 0.000483 | 2740296 | 0.000241 | 2875520 | 0.000190 | 3298600 | 0.000506 | 3809024 |
| 10 | 0.000589 | 2831656 | 0.000516 | 3228464 | 0.000239 | 3363688 | 0.000193 | 3786768 | 0.000491 | 4297192 |
循环内判断
foreach ($result as $k => $row) {if (!empty($score)) {$row['questionscore'] = $score;}if (!empty($israndomoption)) {$row['questionoption'] = $this->l_char->json_to_array($row['questionoption']);$row['questionoption'] = $this->_random_option($row['questionoption']);}$result[$k] = $row;
}
某题型有2题
| 次数 | 执行时间 | 内存占用 |
|---|---|---|
| 1 | 0.000016 | 1539504 |
| 2 | 0.000015 | 1543352 |
| 3 | 0.000015 | 1543256 |
| 4 | 0.000017 | 1543256 |
| 5 | 0.000016 | 1543352 |
| 6 | 0.000016 | 1543256 |
| 7 | 0.000017 | 1543256 |
| 8 | 0.000016 | 1543256 |
| 9 | 0.000014 | 1543256 |
| 10 | 0.000016 | 1547072 |
某题型有20题
| 次数 | 执行时间 | 内存占用 |
|---|---|---|
| 1 | 0.000027 | 1551248 |
| 2 | 0.000026 | 1560216 |
| 3 | 0.000037 | 1560632 |
| 4 | 0.000027 | 1560632 |
| 5 | 0.000025 | 1560632 |
| 6 | 0.000026 | 1560632 |
| 7 | 0.000028 | 1560632 |
| 8 | 0.000026 | 1560632 |
| 9 | 0.000026 | 1560632 |
| 10 | 0.000027 | 1560632 |
某题型有50题
| 次数 | 执行时间 | 内存占用 |
|---|---|---|
| 1 | 0.000094 | 1805808 |
| 2 | 0.000079 | 1868024 |
| 3 | 0.000081 | 1868440 |
| 4 | 0.000080 | 1868440 |
| 5 | 0.000076 | 1868440 |
| 6 | 0.000081 | 1868440 |
| 7 | 0.000078 | 1868440 |
| 8 | 0.000089 | 1868440 |
| 9 | 0.000079 | 1868440 |
| 10 | 0.000087 | 1868440 |
每题题型数量不限
| 次数 | 题型1执行时间 | 题型1内存占用 | 题型2执行时间 | 题型2内存占用 | 题型3执行时间 | 题型3内存占用 | 题型4执行时间 | 题型4内存占用 | 题型5执行时间 | 题型5内存占用 |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 0.000676 | 2343480 | 0.000573 | 2740288 | 0.000266 | 2875512 | 0.000246 | 3298592 | 0.000578 | 3809016 |
| 2 | 0.000590 | 2831632 | 0.000498 | 3228440 | 0.000293 | 3363664 | 0.000220 | 3786744 | 0.000566 | 4297168 |
| 3 | 0.000608 | 2832080 | 0.000489 | 3228888 | 0.000231 | 3364112 | 0.000213 | 3787192 | 0.000541 | 4297616 |
| 4 | 0.000643 | 2832080 | 0.000526 | 3228888 | 0.000236 | 3364112 | 0.000208 | 3787192 | 0.000536 | 4297616 |
| 5 | 0.000590 | 2832080 | 0.000478 | 3228888 | 0.000244 | 3364112 | 0.000205 | 3787192 | 0.000578 | 4297616 |
| 6 | 0.000682 | 2832080 | 0.000489 | 3228888 | 0.000237 | 3364112 | 0.000209 | 3787192 | 0.000563 | 4297616 |
| 7 | 0.000713 | 2832080 | 0.000526 | 3228888 | 0.000241 | 3364112 | 0.000416 | 3787192 | 0.000512 | 4297616 |
| 8 | 0.000621 | 2343464 | 0.000477 | 2740272 | 0.000240 | 2875496 | 0.000212 | 3298576 | 0.000514 | 3809000 |
| 9 | 0.000596 | 2831632 | 0.000489 | 3228440 | 0.000234 | 3363664 | 0.000205 | 3786744 | 0.000624 | 4297168 |
| 10 | 0.000612 | 2832080 | 0.000472 | 3228888 | 0.000248 | 3364112 | 0.000207 | 3787192 | 0.000526 | 4297616 |
函数内判断
$result = array_map(function ($row) use ($score, $israndomoption) {if (!empty($score)) {$row['questionscore'] = $score;}if (!empty($israndomoption)) {$row['questionoption'] = $this->l_char->json_to_array($row['questionoption']);$row['questionoption'] = $this->_random_option($row['questionoption']);}return $row;
}, $result);
某题型有2题
| 次数 | 执行时间 | 内存占用 |
|---|---|---|
| 1 | 0.000024 | 1537160 |
| 2 | 0.000021 | 1541008 |
| 3 | 0.000018 | 1540912 |
| 4 | 0.000018 | 1540912 |
| 5 | 0.000018 | 1537160 |
| 6 | 0.000019 | 1541008 |
| 7 | 0.000019 | 1540912 |
| 8 | 0.000017 | 1540912 |
| 9 | 0.000020 | 1540912 |
| 10 | 0.000018 | 1540912 |
某题型有20题
| 次数 | 执行时间 | 内存占用 |
|---|---|---|
| 1 | 0.000033 | 1548904 |
| 2 | 0.000031 | 1557872 |
| 3 | 0.000028 | 1558288 |
| 4 | 0.000043 | 1558288 |
| 5 | 0.000030 | 1558288 |
| 6 | 0.000031 | 1558288 |
| 7 | 0.000032 | 1558288 |
| 8 | 0.000033 | 1558288 |
| 9 | 0.000030 | 1558288 |
| 10 | 0.000032 | 1558288 |
某题型有50题
| 次数 | 执行时间 | 内存占用 |
|---|---|---|
| 1 | 0.000084 | 1803464 |
| 2 | 0.000085 | 1865680 |
| 3 | 0.000081 | 1866096 |
| 4 | 0.000141 | 1866096 |
| 5 | 0.000081 | 1866096 |
| 6 | 0.000139 | 1866096 |
| 7 | 0.000091 | 1866096 |
| 8 | 0.000080 | 1803464 |
| 9 | 0.000080 | 1865680 |
| 10 | 0.000085 | 1803464 |
每题题型数量不限
| 次数 | 题型1执行时间 | 题型1内存占用 | 题型2执行时间 | 题型2内存占用 | 题型3执行时间 | 题型3内存占用 | 题型4执行时间 | 题型4内存占用 | 题型5执行时间 | 题型5内存占用 |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 0.000642 | 2341104 | 0.000524 | 2737912 | 0.000446 | 2873136 | 0.000231 | 3296216 | 0.000543 | 3806640 |
| 2 | 0.000631 | 2829272 | 0.000518 | 3226080 | 0.000433 | 3361304 | 0.000224 | 3784384 | 0.000517 | 4294808 |
| 3 | 0.000629 | 2829720 | 0.000506 | 3226528 | 0.000239 | 3361752 | 0.000215 | 3784832 | 0.000659 | 4295256 |
| 4 | 0.000608 | 2829720 | 0.000490 | 3226528 | 0.000251 | 3361752 | 0.000229 | 3784832 | 0.000520 | 4295256 |
| 5 | 0.000646 | 2829720 | 0.000537 | 3226528 | 0.000241 | 3361752 | 0.000231 | 3784832 | 0.000801 | 4295256 |
| 6 | 0.000610 | 2829720 | 0.000492 | 3226528 | 0.000249 | 3361752 | 0.000232 | 3784832 | 0.000531 | 4295256 |
| 7 | 0.000640 | 2829720 | 0.000484 | 3226528 | 0.000257 | 3361752 | 0.000300 | 3784832 | 0.000544 | 4295256 |
| 8 | 0.000587 | 2829720 | 0.000500 | 3226528 | 0.000388 | 3361752 | 0.000229 | 3784832 | 0.000527 | 4295256 |
| 9 | 0.000657 | 2829720 | 0.000610 | 3226528 | 0.000246 | 3361752 | 0.000224 | 3784832 | 0.000767 | 4295256 |
| 10 | 0.000605 | 2829720 | 0.000494 | 3226528 | 0.000244 | 3361752 | 0.000220 | 3784832 | 0.000510 | 4295256 |
不同方法下数量不限时的平均值
| 方法 | 题1时间 | 题1内存 | 题2时间 | 题2内存 | 题3时间 | 题3内存 | 题4时间 | 题4内存 | 题5时间 | 题5内存 |
|---|---|---|---|---|---|---|---|---|---|---|
| 判断后循环 | 0.0005907 | 2685429.6 | 0.0004928 | 3082237.6 | 0.0002509 | 3217461.6 | 0.0002203 | 3640541.6 | 0.0005552 | 4150965.6 |
| 循环内判断 | 0.0006331 | 2734268.8 | 0.0005017 | 3131076.8 | 0.000247 | 3266300.8 | 0.0002341 | 3689380.8 | 0.0005538 | 4199804.8 |
| 函数内判断 | 0.0006255 | 2780813.6 | 0.0005155 | 3177621.6 | 0.0002994 | 3312845.6 | 0.0002335 | 3735925.6 | 0.0005919 | 4246349.6 |
结论
| 方法 | 2题平均执行时间 | 2题平均内存占用 | 20题平均执行时间 | 20题平均内存占用 | 50题平均执行时间 | 50题平均内存占用 | 数量不限平均执行时间 | 数量不限平均内存占用 |
|---|---|---|---|---|---|---|---|---|
| 判断后循环 | 0.0000181 | 1542914.4 | 0.000028 | 1559676 | 0.0000816 | 1862159.2 | 0.00042198 | 3355327.2 |
| 循环内判断 | 0.0000158 | 1543281.6 | 0.0000275 | 1559652 | 0.0000824 | 1862135.2 | 0.00043394 | 3404166.4 |
| 函数内判断 | 0.0000192 | 1540180.8 | 0.0000323 | 1557308 | 0.0000947 | 1847223.2 | 0.00045316 | 3450711.2 |
基本和以前版本的结论一致:
- 在数量少的时候,
循环内判断速度最快,函数内判断内存占用最少; - 在数量有所提升后,
判断后循环速度最快,函数内判断内存占用最少; - 在数量上到一定量后,
判断后循环速度最快,并且其内存占用也是最少。
如果字符量较少,不同方法所带来的损耗在一般应用中可以忽略;

相关文章:
PHP开发日志——循环和条件语句嵌套不同,效率不同(循环内加入条件语句,条件语句判断后加入循环,array_map函数中加入条件语句)
十多年前开发框架时,为了效率不断试过各种代码写法,今天又遇到了,想想php8时代会不会有所变化,结果其实也还是和当年一样,但当年没写博客,但现在可以把数据记录下来了。 PHP_loop_ireflies_dark_forest 项目…...
【Seata源码学习 】 扫描@GlobalTransaction注解 篇一
1. SeataAutoConfiguration 自动配置类的加载 基于SpringBoot的starter机制,在应用上下文启动时,会加载SeataAutoConfiguration自动配置类 # Auto Configure org.springframework.boot.autoconfigure.EnableAutoConfigurationio.seata.spring.boot.aut…...
DBA-MySql面试问题及答案-上
文章目录 1.什么是数据库?2.如何查看某个操作的语法?3.MySql的存储引擎有哪些?4.常用的2种存储引擎?6.可以针对表设置引擎吗?如何设置?6.选择合适的存储引擎?7.选择合适的数据类型8.char & varchar9.Mysql字符集10.如何选择…...
网络爬虫之Ajax动态数据采集
动态数据采集 规则 有时候我们在用 requests 抓取页面的时候,得到的结果可能和在浏览器中看到的不一样,在浏览器中可以看到正常显示的页面教据,但是使用 requests 得到的结果并没有,这是因为requests 获取的都是原始的 HTML 文档…...
c语言的初始学习(练习)
##初学c语言---MOOC浙江大学翁恺先生学习c语言 那么我们先看看这个题目吧,这是初始语法的应用。 记住,我们的程序是按步骤执行的,并不是在不同的两行同时进行。 程序设计:1.了解题目的需要,几个变量需要用到&#x…...
研究论文 2022-Oncoimmunology:AI+癌RNA-seq数据 识别细胞景观
Wang, Xin, et al. "Deep learning using bulk RNA-seq data expands cell landscape identification in tumor microenvironment." Oncoimmunology 11.1 (2022): 2043662. https://www.tandfonline.com/doi/full/10.1080/2162402X.2022.2043662 被引次数࿱…...
ChatGPT4与ArcGIS Pro3助力AI 地理空间分析和可视化及助力科研论文写作
在地学领域,ArcGIS几乎成为了每位科研工作者作图、数据分析的必备工具,而ArcGIS Pro3除了良好地继承了ArcMap强大的数据管理、制图、空间分析等能力,还具有二三维融合、大数据、矢量切片制作及发布、任务工作流、时空立方体等特色功能&#x…...
okhttp系列-一些上限值
1.正在执行的任务数量最大值是64 异步请求放入readyAsyncCalls后,遍历readyAsyncCalls取出任务去执行的时候,如果发现runningAsyncCalls的数量大于等于64,就不从readyAsyncCalls取出任务执行。 public final class Dispatcher {private int …...
C++面向对象(OOP)编程-STL详解(vector)
本文主要介绍STL六大组件,并主要介绍一些容器的使用。 目录 1 泛型编程 2 CSTL 3 STL 六大组件 4 容器 4.1 顺序性容器 4.1.1 顺序性容器的使用场景 4.2 关联式容器 4.2.1 关联式容器的使用场景 4.3 容器适配器 4.3.1 容器适配器的使用场景 5 具体容器的…...
postman几种常见的请求方式
1、get请求直接拼URL形式 对于http接口,有get和post两种请求方式,当接口说明中未明确post中入参必须是json串时,均可用url方式请求 参数既可以写到URL中,也可写到参数列表中,都一样,请求时候都是拼URL 2&am…...
openai最新探索:超级对齐是否可行?
前言 今天来介绍一篇openai最新的paper:弱到强的对齐。 openai专门成立了一个团队来做大模型的超级对齐即superhuman model,之前chatgpt取得成功依赖RLHF即依赖人类反馈,但是作者期望的superhuman model将会是一个能够处理各种复杂问题的强…...
本地websocket服务端结合cpolar内网穿透实现公网访问
文章目录 1. Java 服务端demo环境2. 在pom文件引入第三包封装的netty框架maven坐标3. 创建服务端,以接口模式调用,方便外部调用4. 启动服务,出现以下信息表示启动成功,暴露端口默认99995. 创建隧道映射内网端口6. 查看状态->在线隧道,复制所创建隧道的公网地址加端口号7. 以…...
关于“Python”的核心知识点整理大全37
目录 13.6.2 响应外星人和飞船碰撞 game_stats.py settings.py alien_invasion.py game_functions.py ship.py 注意 13.6.3 有外星人到达屏幕底端 game_functions.py 13.6.4 游戏结束 game_stats.py game_functions.py 13.7 确定应运行游戏的哪些部分 alien_inva…...
Vivado中的FFT IP核使用(含代码)
本文介绍了Vidado中FFT IP核的使用,具体内容为:调用IP核>>配置界面介绍>>IP核端口介绍>>MATLAB生成测试数据>>测试verilogHDL>>TestBench仿真>>结果验证>>FFT运算。 1、调用IP核 该IP核对应手册pg109_xfft.pd…...
创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
2022年亚马逊云科技re:Invent盛会于近日在拉斯维加斯成功召开,吸引了众多业界精英和创新者。亚马逊云科技边缘服务副总裁Jan Hofmeyr在演讲中分享了关于亚马逊云科技海外服务器边缘计算的最新发展和创新成果,引发与会者热烈关注。 re:Invent的核心主题是…...
什么是“人机协同”机器学习?
“人机协同”(HITL)是人工智能的一个分支,它同时利用人类智能和机器智能来创建机器学习模型。在传统的“人机协同”方法中,人们会参与一个良性循环,在其中训练、调整和测试特定算法。通常,它的工作方式如下…...
数学建模笔记-拟合算法
内容:拟合算法 一.概念: 拟合的结果就是找到一个确定的曲线 二.最小二乘法: 1. 2.最小二乘法的二表示的是平方的那个2 3.求解最小二乘法: 三.评价拟合的好坏 1.总体评分和SST: 2.误差平方和SSE: 3.回…...
非线性约束的优化问题_序列二次规划算法代码
1. 理论部分 2. 序列二次规划算法代码及解析 3.完整代码 1.理论部分 a.约束优化问题的极值条件 库恩塔克条件(Kuhn-Tucker conditions,KT条件)是确定某点为极值点的必要条件。如果所讨论的规划是凸规划,那么库恩-塔克条件也是充分条件。 ÿ…...
【数据结构之顺序表】
数据结构学习笔记---002 数据结构之顺序表1、介绍线性表1.1、什么是线性表? 2、什么是顺序表?2.1、概念及结构2.2、顺序表的分类 3、顺序表接口的实现3.1、顺序表动态存储结构的Seqlist.h3.1.1、定义顺序表的动态存储结构3.1.2、声明顺序表各个接口的函数 3.2、顺序表动态存储…...
junit-mock-dubbo
dubbo单元测试分两种情况 Autowired注解是启动上下文环境,使用上下文对象进行测试,适合调试代码 InjectMocks注解是启动上下文环境,使用mock对象替换上下文对象,适合单元测试 BaseTest *** Created by Luohh on 2023/2/10*/ S…...
Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
Java - Mysql数据类型对应
Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...
自然语言处理——Transformer
自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...
SpringCloudGateway 自定义局部过滤器
场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...
智能AI电话机器人系统的识别能力现状与发展水平
一、引言 随着人工智能技术的飞速发展,AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术,在客户服务、营销推广、信息查询等领域发挥着越来越重要…...
C#中的CLR属性、依赖属性与附加属性
CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...
深度学习水论文:mamba+图像增强
🧀当前视觉领域对高效长序列建模需求激增,对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模,以及动态计算优势,在图像质量提升和细节恢复方面有难以替代的作用。 🧀因此短时间内,就有不…...
