标签: performance

反转字符串的最佳方法

我只需要在C#2.0中编写一个字符串反向函数(即LINQ不可用)并想出了这个:

public string Reverse(string text)
{
    char[] cArray = text.ToCharArray();
    string reverse = String.Empty;
    for (int i = cArray.Length - 1; i > -1; i--)
    {
        reverse += cArray[i];
    }
    return reverse;
}
Run Code Online (Sandbox Code Playgroud)

就个人而言,我并不是对这个功能感到疯狂,并且我确信有更好的方法可以做到这一点.在那儿?

.net c# algorithm unicode performance

419
推荐指数
20
解决办法
61万
查看次数

制作字符串大写的第一个字母(具有最大性能)

我有DetailsView一个TextBox 和我想要的输入数据始终保存的第一个字母注册资本.

例:

"red" --> "Red"
"red house" --> " Red house"
Run Code Online (Sandbox Code Playgroud)

如何实现这种最大化的性能


注意:
根据答案和答案下的评论,很多人认为这是在询问字符串中所有单词的大写.例如,=> Red House 它不是,但如果这是你所追求的,寻找使用其中一个答案TextInfoToTitleCase方法.(注意:对于实际提出的问题,这些答案是不正确的.)
请参阅TextInfo.ToTitleCase doc以获取警告(不触及所有大写单词 - 它们被视为首字母缩略词;可以在"不应该"的单词中间小写字母降低,例如"麦当劳"=>"麦当劳";不保证能够处理所有特定文化的细微差别.


注意:
关于第一个字母之后的字母是否应该强制小写,问题不明确.接受的答案假定只应改变第一个字母.如果要强制除第一个字符串之外的字符串中的所有字母都是小写,请查找包含但不包含ToTitleCase的答案.ToLower

c# performance

412
推荐指数
17
解决办法
45万
查看次数

如何识别未使用的CSS定义

有没有什么好方法可以帮助识别项目中未使用的CSS定义?一堆css文件被拉进来,现在我正在尝试清理一些东西.

css optimization performance code-cleanup

409
推荐指数
7
解决办法
17万
查看次数

对于繁重的计算,Fortran是否比C更容易优化?

我不时会读到Fortran是或者可以比C更快进行繁重的计算.这是真的吗?我必须承认我几乎不知道Fortran,但到目前为止我见过的Fortran代码并没有表明该语言具有C所没有的功能.

如果是真的,请告诉我原因.请不要告诉我哪些语言或库对数字运算有好处,我不打算写一个app或lib来做那个,我只是很好奇.

c performance fortran

402
推荐指数
17
解决办法
13万
查看次数

纯函数式编程的效率

有没有人知道什么是最简单的渐近减速,当编程纯粹功能而不是命令性(即允许副作用)时可能发生?

来自itowlson评论的澄清:有没有哪个问题最着名的非破坏性算法渐渐比最着名的破坏性算法更糟糕,如果是这样的话多少呢?

algorithm performance functional-programming

395
推荐指数
3
解决办法
6万
查看次数

为什么(a*b!= 0)比Java中的(a!= 0 && b!= 0)更快?

我正在用Java编写一些代码,在某些时候,程序的流程是由两个int变量"a"和"b"是否为非零来确定的(注意:a和b从不是负数,并且从不在整数溢出范围内).

我可以评估它

if (a != 0 && b != 0) { /* Some code */ }
Run Code Online (Sandbox Code Playgroud)

或者

if (a*b != 0) { /* Some code */ }
Run Code Online (Sandbox Code Playgroud)

因为我希望每段代码运行数百万次,所以我想知道哪一段会更快.我通过在一个巨大的随机生成的数组上进行比较来做实验,我也很想知道数组的稀疏性(数据的分数= 0)会如何影响结果:

long time;
final int len = 50000000;
int arbitrary = 0;
int[][] nums = new int[2][len];

for (double fraction = 0 ; fraction <= 0.9 ; fraction += 0.0078125) {
    for(int i = 0 ; i < 2 ; i++) {
        for(int j = 0 ; j < len ; j++) …
Run Code Online (Sandbox Code Playgroud)

java performance processing-efficiency microbenchmark branch-prediction

394
推荐指数
5
解决办法
2万
查看次数

静态链接与动态链接

在某些情况下,是否有任何令人信服的性能原因选择静态链接而不是动态链接?我已经听过或读过以下内容,但我对这个问题的了解不足以保证它的真实性.

1)静态链接和动态链接之间的运行时性能差异通常可以忽略不计.

2)(1)如果使用使用配置文件数据优化程序热路径的配置文件编译器,则不成立,因为使用静态链接,编译器可以优化代码和库代码.通过动态链接,您的代码可以进行优化.如果大部分时间都花在运行库代码上,那么这可能会产生很大的不同.否则,(1)仍然适用.

c c++ performance dynamic-linking static-linking

382
推荐指数
14
解决办法
22万
查看次数

确定整数是否在具有已知值集的两个整数(包括)之间的最快方法

是否有比x >= start && x <= endC或C++ 更快的方法来测试整数是否在两个整数之间?

更新:我的特定平台是iOS.这是盒子模糊功能的一部分,它将像素限制为给定方块中的圆圈.

更新:在尝试接受的答案后,我在一行代码上以正常x >= start && x <= end方式执行了一个数量级的加速.

更新:这是来自XCode的汇编程序的after和before代码:

新方法

// diff = (end - start) + 1
#define POINT_IN_RANGE_AND_INCREMENT(p, range) ((p++ - range.start) < range.diff)

Ltmp1313:
 ldr    r0, [sp, #176] @ 4-byte Reload
 ldr    r1, [sp, #164] @ 4-byte Reload
 ldr    r0, [r0]
 ldr    r1, [r1]
 sub.w  r0, r9, r0
 cmp    r0, r1
 blo    LBB44_30
Run Code Online (Sandbox Code Playgroud)

老路

#define POINT_IN_RANGE_AND_INCREMENT(p, range) (p <= range.end …
Run Code Online (Sandbox Code Playgroud)

c c++ math performance

376
推荐指数
4
解决办法
6万
查看次数

HashSet与List性能

很明显,泛型HashSet<T>类的搜索性能高于泛型List<T>类.只需将基于散列的密钥与线性方法进行比较即可List<T>.

但是,计算散列键本身可能需要一些CPU周期,因此对于少量项目,线性搜索可以是一个真正的替代HashSet<T>.

我的问题:收支平衡在哪里?

为了简化场景(并且公平),我们假设List<T>该类使用元素的Equals()方法来标识项目.

.net collections hash performance list

374
推荐指数
8
解决办法
18万
查看次数

HTTP与HTTPS性能

http和https之间的性能有任何重大差异吗?我似乎记得读到HTTPS的速度可以达到HTTP的五分之一.这对当前的网络服务器/浏览器有效吗?如果是这样,有没有支持它的白皮书?

performance https http

360
推荐指数
10
解决办法
22万
查看次数