相关疑难解决方法(0)

开发人员是否应该首先考虑可读性或性能?

通常情况下,开发人员将面临解决问题的两种可能方式之间的选择 - 一种是惯用的和可读的,另一种不太直观,但可能表现更好.例如,在基于C语言中,有两种方法可以将数字乘以2:

int SimpleMultiplyBy2(int x)
{
    return x * 2; 
}
Run Code Online (Sandbox Code Playgroud)

int FastMultiplyBy2(int x)
{
    return x << 1;
}
Run Code Online (Sandbox Code Playgroud)

第一个版本更容易为技术和非技术读者选择,但第二个版本可能表现更好,因为比特移位比乘法更简单.(现在,让我们假设编译器的优化器不会检测到它并对其进行优化,尽管这也是一个考虑因素).

作为开发人员,最初的尝试会更好吗?

performance readability

74
推荐指数
9
解决办法
9124
查看次数

在矩阵中查找给定的行

我有一个m乘n矩阵MATLAB,比如M.我有一个n元素行向量,即一个n列矩阵,比如X.

我知道X在M的某个地方.我怎样才能在M中找到索引?

matlab

42
推荐指数
2
解决办法
7万
查看次数

性能与可读性

阅读这个问题我发现这是(注意引号)"代码"来解决问题(顺便说一下,这是perl).

100,{)..3%!'Fizz'*\5%!'Buzz'*+\or}%n*
Run Code Online (Sandbox Code Playgroud)

显然这是一个没有真实的智力实例(我希望永远不会在我生活中的真实代码中看到它),但是,当你必须做出选择时,你何时牺牲代码的可读性才能获得性能?你是否只是应用常识,你是否总是作为最后的手段?你有什么策略?

编辑:对不起,看到答案我可能已经表达了严重的问题(英语不是我的母语).我不是说你编写代码后的性能与可读性,我在你写之前也会问.有时你可以通过制作一些较暗的设计或提供一些会使你的课程变暗的属性来预见未来的性能提升.您可能决定使用多个线程或仅使用一个线程,因为您期望这些线程可以提供的可伸缩性,即使这会使代码更难以理解.

performance

17
推荐指数
4
解决办法
2758
查看次数

如何检查矩阵的所有行是否相等

检查矩阵的所有行是否在数值上相等的最有效方法是什么?最好是寻找没有for循环的东西.

matlab matrix vectorization

3
推荐指数
1
解决办法
3311
查看次数

标签 统计

matlab ×2

performance ×2

matrix ×1

readability ×1

vectorization ×1