整数 不等于 整型。
你的问题应该是,两个整型相除为什么得到浮点型……
如果一定要说就是规定如此。
事实上数值运算的时候类型发生变化是非常正常的事情……
例如在C语言里面,整型与浮点型计算得到浮点型。
你说俩类型相同的加减不会得到其他类型?
C#里面俩short做各种运算会得到int的结果。
这没什么值得大惊小怪的……
DateTime相减还会得到TimeSpan呢……
事实上整型的除法才是不符合直觉的吧……
之所以要设计成那样,是因为整型需要用来做精确计算。
浮点数无法做精确计算,如果直接转换为浮点数计算除法,就会产生精度丢失。
当然有人会说直接向下取整岂不是丢的更多?
事实上这是错误的,因为丢失的部分精确的等于取余运算的结果,也就是说对于C语言而言:
a/b*b+a%b===a
开局一张图,剩下全靠猜?这个没法评价。
从软件的角度虽然我能想出两三种导致这个现象的原因,但非正式发布的产品出现任何问题都是常见现象。盲人摸象的评价没有必要。
跟11代没差别,这个肯定是违背常识的,要知道11代i9只有16线程,12代i9有24线程,24线程超越16线程并不需要多么高超的优化技巧。
调度优化的主要难题是当我们只需要少量线程运作的时候究竟把这个线程安排在哪个核心。
然而,对于全核心全线程同时计算的场景来说,反正都是全核心上场,根本不需要什么优化,谁来都是全核心工作。
如果这个软件能把所有核心用满的话,没道理性能不变。所以肯定有某个环节出了问题。正式版本再说吧。