当前位置: 首页 > news >正文

d的nan讨论4

我会远离快速数学.但是,如果你想用它,就得靠你自己了,因为D假设IEEE数学.
因此断定可引入新的_未定义行为_.

"快速数学",也因编译器而异,有时会使事情变慢!
甚至需要它来提高性能吗?不确定,因为只是矢量化,无论是自动的还是显式的,都会带来更好的结果.至少,这是我使用LLVM后端的经验.

最好不用-release.

-release唯一应该做的就是删除调试语句.不多也不少.
是的.-release出于多种原因应该*永远认真*使用,但请阅读规范的该部分,规范:
第一个AssignExpression必须求值为真.如果没有,则断定失败且程序进入无效状态.
如果失败了,即使没有真正编译进去,程序*仍然*进入无效状态.
一旦无效状态,继续执行程序是未定义的.
优化器可自由假设断定都是正确的,因为它向前移动,如果从未经过实际测试,它可能会非常随机.
默认不使用调试语句.
显然,断定失败后扔掉你的计算机.
绝对地.地下室里到处都是敢于失败的垃圾电脑.
DMD有个开关,可以在断定失败时插入暂停指令.

-release适合速度基准测试的人.我根据几十年的经验说话.

如果不在输出错误,更不可能在初化为0时就找到它.
我还在此写过在不想使用时退出时,NaN合法用途.
它类似Unicode中的"替换字符".我们有在看到无效代码点时,触发异常的经验.这是错误的答案.大错特错,它是Phobos版本2的动力之一.

我已经和布鲁斯谈过很多次了.
充分了解向量化后,结论是,显式矢量化通常是错误选择.它占用了开发人员的时间,且好处很少.
LLVMGCC都可利用的是assert(arg1 !is arg2);,这么简单的断言!然而其中有很重要的别名信息.我喜欢断言.

文档应该直截了当地说"除非你在人为的速度基准上作弊,否则永远不要使用它",-release.
它应该重命名为-optimize-for-benchmark.
并不可怕.只需要了解正在发生的事情.
合同旨在支持正确性,而不是帮助加剧漏洞.
比较常见用例是禁用合约/断言检查.
问题是DMD似乎不能安全切换到禁用检查.
我遇到"非法指令"的经验是,他们只是假设编译器有错误并产生了无效的机器代码.此外,"hlt"语义根本不终止任何事情,它只是等待下一个中断的触发.它在用户空间崩溃的唯一原因是它需要访问0环.
现在,使用UD2了.

相关文章:

  • Python 运算符和表达式
  • 【LeetCode】2022 8月 每日一题
  • AcWing-1-递归实现指数型枚举
  • 易基因|文献科普:DNA甲基化测序揭示DNMT3a在调控T细胞同种异体反应中的关键作用
  • 基于springboot小型车队管理系统毕业设计源码061709
  • 大数据ClickHouse进阶(一):ClickHouse使用场景和集群安装
  • js面向对象之封装,继承,多态,类的详解
  • 永久免费H5直播点播播放器SkeyeWebPlayer.js实现webrtc流播放
  • JavaScript-HelloWorld、浏览器控制台使用、数据类型
  • Centos部署Docker
  • 视频剪辑教程自学技巧:关于正确的短视频剪辑流程分享
  • 30、三维表面重建-Convolutional Occupancy Network
  • Android 用户如何将Room根据不同账户动态分库方案
  • 539、RabbitMQ详细入门教程系列 -【100%消息投递消费(一)】 2022.08.31
  • 基于信贷业务的量化风险评估简述
  • Android交互
  • Apache Spark Streaming 使用实例
  • Java面向对象及其三大特征
  • Spark RDD学习: aggregate函数
  • Tornado学习笔记(1)
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 力扣(LeetCode)22
  • 前端面试题总结
  • 山寨一个 Promise
  • 收藏好这篇,别再只说“数据劫持”了
  • 我的zsh配置, 2019最新方案
  • 自动记录MySQL慢查询快照脚本
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • #vue3 实现前端下载excel文件模板功能
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (附源码)计算机毕业设计ssm基于Internet快递柜管理系统
  • (三分钟)速览传统边缘检测算子
  • (十六)Flask之蓝图
  • (转载)深入super,看Python如何解决钻石继承难题
  • ./configure,make,make install的作用
  • .java 9 找不到符号_java找不到符号
  • .NET 5.0正式发布,有什么功能特性(翻译)
  • /var/spool/postfix/maildrop 下有大量文件
  • @Async注解的坑,小心
  • @ModelAttribute使用详解
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(朱雀组)
  • [ 云计算 | AWS ] 对比分析:Amazon SNS 与 SQS 消息服务的异同与选择
  • [2019.3.20]BZOJ4573 [Zjoi2016]大森林
  • [C/C++]数据结构 循环队列
  • [Codeforces] probabilities (R1600) Part.1
  • [Editor]Unity Editor类常用方法
  • [HDU5685]Problem A
  • [idea]关于idea开发乱码的配置