标签: optimization

PHP的合并功能?

许多编程语言都有一个coalesce函数(返回第一个非NULL值,例如).遗憾的是,PHP在2009年没有.

在PHP本身获得合并函数之前,用PHP实现一个好方法是什么?

php optimization null-coalescing-operator

130
推荐指数
6
解决办法
5万
查看次数

哪个更好,数字(x)或parseFloat(x)?

哪个更好?

我问这只是为了削减几个字节,因为我可以使用+ x而不是数字(x).parsefloat做得更好吗?

javascript optimization

128
推荐指数
3
解决办法
7万
查看次数

分析Vim启动时间

使用Vim时我已经启用了很多插件 - 多年来我收集了插件.我有点厌倦了Vim现在需要多长时间,所以我想介绍一下它的启动,看看我有哪些插件负责.

有没有办法分析Vim的启动或脚本运行?理想情况下,我想知道Vim在加载的每个Vim脚本中花了多长时间.

debugging vim optimization profiling

125
推荐指数
7
解决办法
3万
查看次数

JavaScript中的三元运算符没有"Else"

我总是不得不放入null没有任何东西的其他条件.不管怎么说呢?例如

condition ? x = true : null;
Run Code Online (Sandbox Code Playgroud)

基本上,有办法吗?

condition ? x = true;
Run Code Online (Sandbox Code Playgroud)

现在它显示为语法错误

仅供参考,这里有一些真实的示例代码:

!defaults.slideshowWidth ? defaults.slideshowWidth = obj.find('img').width()+'px' : null;
Run Code Online (Sandbox Code Playgroud)

javascript optimization syntax-error

125
推荐指数
6
解决办法
11万
查看次数

为什么Clang优化x*1.0而不是x + 0.0?

为什么Clang会优化此代码中的循环

#include <time.h>
#include <stdio.h>

static size_t const N = 1 << 27;
static double arr[N] = { /* initialize to zero */ };

int main()
{
    clock_t const start = clock();
    for (int i = 0; i < N; ++i) { arr[i] *= 1.0; }
    printf("%u ms\n", (unsigned)(clock() - start) * 1000 / CLOCKS_PER_SEC);
}
Run Code Online (Sandbox Code Playgroud)

但不是这段代码中的循环?

#include <time.h>
#include <stdio.h>

static size_t const N = 1 << 27;
static double arr[N] = { /* initialize to zero */ }; …
Run Code Online (Sandbox Code Playgroud)

c c++ floating-point optimization clang

125
推荐指数
2
解决办法
5523
查看次数

快速查找C数组中是否存在值?

我有一个具有时间要求严格的ISR的嵌入式应用程序需要迭代256个大小的数组(最好是1024,但256是最小的),并检查一个值是否与数组内容匹配.如果bool是这样,A 将设置为true.

微控制器是NXP LPC4357,ARM Cortex M4内核,编译器是GCC.我已经结合优化级别2(3更慢)并将功能放在RAM而不是闪存中.我还使用指针算法和for循环,它进行向下计数而不是向上(检查是否i!=0比检查是否更快i<256).总而言之,我的最终持续时间为12.5μs,必须大幅度降低才能实现.这是我现在使用的(伪)代码:

uint32_t i;
uint32_t *array_ptr = &theArray[0];
uint32_t compareVal = 0x1234ABCD;
bool validFlag = false;

for (i=256; i!=0; i--)
{
    if (compareVal == *array_ptr++)
    {
         validFlag = true;
         break;
     }
}
Run Code Online (Sandbox Code Playgroud)

什么是绝对最快的方法呢?允许使用内联汇编.其他'不太优雅'的技巧也是允许的.

c embedded optimization assembly arm

124
推荐指数
9
解决办法
1万
查看次数

在Python中处理非常大的数字

我一直在考虑用Python进行快速扑克手牌评估.在我看来,加速这个过程的一种方法是将所有卡面和套装表示为素数,并将它们相乘以代表手.白衣:

class PokerCard:
    faces = '23456789TJQKA'
    suits = 'cdhs'
    facePrimes = [11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 53, 59, 61]
    suitPrimes = [2, 3, 5, 7]
Run Code Online (Sandbox Code Playgroud)

    def HashVal(self):
      return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
Run Code Online (Sandbox Code Playgroud)

这会给每只手一个数值,通过模数可以告诉我手中有多少国王或多少颗心.例如,任何有五个或更多球杆的手将平均分为2 ^ 5; 任何有四个国王的手都会平均分为59 ^ 4等.

问题在于,像AcAdAhAsKdKhKs这样的七张牌的手的哈希值大约为62.7千万亿,内部代表需要大于32位.有没有办法在Python中存储这么大的数字,这将允许我对它进行算术运算?

python optimization largenumber

120
推荐指数
5
解决办法
22万
查看次数

在发布之前优化Android应用程序

关于我的计划的效率,我处于" 特殊 "状态.现在我处于需要提高应用程序性能和减少电池消耗的阶段.

在问题之前:

现在,我很想知道其他开发人员用于优化自己应用程序的特殊修复程序.用户可能永远不会识别或注意的东西.但是,修复将延长电池寿命或帮助改善应用程序的维护.

那么,你的独特优化技巧是什么?

我处在一个特殊的情况,我正在寻找知识,我认为这将是一个很好的机会,可以分享开发人员对他们所处过的情况的了解.

请投票给出很好的答案,因为这将鼓励优秀的开发人员分享他们的知识.

java optimization android

120
推荐指数
11
解决办法
2万
查看次数

虚函数和性能 - C++

在我的类设计中,我广泛使用抽象类和虚函数.我感觉虚拟功能会影响性能.这是真的?但我认为这种性能差异并不明显,看起来我正在做过早的优化.对?

c++ optimization performance virtual-functions

117
推荐指数
8
解决办法
6万
查看次数

使用此指针会在热循环中导致奇怪的去优化

我最近遇到了一个奇怪的去优化(或者错过了优化机会).

考虑此函数可以有效地将3位整数数组解包为8位整数.它在每次循环迭代中解包16个int:

void unpack3bit(uint8_t* target, char* source, int size) {
   while(size > 0){
      uint64_t t = *reinterpret_cast<uint64_t*>(source);
      target[0] = t & 0x7;
      target[1] = (t >> 3) & 0x7;
      target[2] = (t >> 6) & 0x7;
      target[3] = (t >> 9) & 0x7;
      target[4] = (t >> 12) & 0x7;
      target[5] = (t >> 15) & 0x7;
      target[6] = (t >> 18) & 0x7;
      target[7] = (t >> 21) & 0x7;
      target[8] = (t >> 24) & 0x7;
      target[9] = …
Run Code Online (Sandbox Code Playgroud)

c++ optimization strict-aliasing compiler-optimization c++11

117
推荐指数
3
解决办法
5163
查看次数