- 主题:Java农转写cpp发现,写Java比写cpp省心太多了
java调native库性能损失很大
【 在 xiaoju 的大作中提到: 】
: 这类程序关键是底层调用专用库,算法本身用什么东西写都无所谓。一般来说选的是写起来最方便的,比如matlab,python。
:
--
FROM 123.112.21.*
我用汇编还至少可以在现在的处理器上优化下,设计数字电路还得先买个fab厂,买不起
【 在 xiaoju 的大作中提到: 】
: 调用开销大不是问题,因为瓶颈在native代码里不在调用层
: 你还不如关心这个,通过汇编语言做科学计算,比直接设计数字电路算至少慢2个数量级
:
--
FROM 123.112.21.*
大多数人根本搞不清楚什么是正确和错误...
异常不仅仅丑陋,而且根本的问题是被滥用
optional之类的代数类型就可以解决的问题
【 在 xiaoju 的大作中提到: 】
: 大多数现代语言比如C++,C#,Java,python,javascript都支持异常啊,这是人民群众用脚投票的结果啊。
: 异常可以简化很多不必要的error转发逻辑,尤其是中间层,不想处理error就不需要了解底层实现,能写出简洁易读代码
:
--
FROM 123.112.21.*
瓶颈不好说在哪,不评测个具体问题,谁知道哪里有瓶颈
java里那些比较快的库程序,似乎很多是native的,不过应该不是jni的
【 在 xiaoju 的大作中提到: 】
: 调用开销大不是问题,因为瓶颈在native代码里不在调用层
: 你还不如关心这个,通过汇编语言做科学计算,比直接设计数字电路算至少慢2个数量级
:
--
FROM 123.112.21.*
现在cpp和rust都可以用代数类型返回错误
【 在 xiaoju 的大作中提到: 】
: 不喜欢异常可以换个不支持异常的语言
:
--
FROM 123.112.21.*
应该用代数类型处理错误,一致有效
【 在 xiaoju 的大作中提到: 】
: 可以不代表该这么用
: 我见了太多的纯C风格java,python和javascript代码,都是印度培训班杰作
: 一般来说用什么语言就应该按照什么语言的标准库的规矩写,stl和boost为什么要抛异常啊
: ...................
--
FROM 123.112.21.*
并不是难题,都放到variant/optional里头就行
异常信息难道不是得同样管理吗?
用代数类型之后,用管理异常同样的方法就可以管理错误信息
【 在 xiaoju 的大作中提到: 】
: 你说的是error code?
: 项目做大了这个东西很麻烦,不同team之间怎么分配,用哪个标志表示问题严重性。而且还得写个把code转化成text的表格。
: 好不容易全搞定了,然后发现自己想嵌入更多信息。。。如网络错误的host名,status code放哪里都是难题。
: ...................
--
FROM 123.112.21.*
代数类型里内嵌的错误信息也可以有类型啊
问题是异常你不了解也处理不了啊,一个外部模块抛的异常完全是扯淡
【 在 xiaoju 的大作中提到: 】
: 异常是有类型的,你这么做本质上等价于restful那种返回result或者返回error对象的做法
: 项目小的话是没问题的,但是如果做大了很多代码模块复用,搞清到底是返回了什么异常就不容易了,集中处理某大类异常也比较困难
: 如果认真把这类问题全解决了,基本也就是重新发明了异常
: ...................
--
FROM 123.112.21.*
这个优势才是最烦人的东西
代数类型+模式匹配一致性更好,也不会有非预期的东西出现
【 在 javafish 的大作中提到: 】
: 异常的优势是可以穿透调用栈
: 还可以按异常类型各层分类捕获
: 最关键的,有明确的异常流程代码段
--
修改:Bernstein FROM 123.112.21.*
FROM 123.112.21.*
如果有很多异常的话,那肯定是不会使用的;我不关注它内部出了什么非预期情况,也没兴趣捕获来打破正常流程
【 在 xiaoju 的大作中提到: 】
: 异常本质就是对象,外部模块的class你就不能用了吗?
:
--
FROM 123.112.21.*