混淆会使我的程序更加优化

时间:2011-11-16 07:14:55

标签: algorithm optimization obfuscation

我正在使用C ++实现DES加密算法,我在一个非常大的文档(1.1MB)plaint文本上进行基准测试。

我现在已经加密了大约1.1秒,我需要从中获得更多性能。

我在考虑混淆,这有助于优化我的代码吗?

3 个答案:

答案 0 :(得分:8)

我认为优化代码是优化代码的最佳方式:

  • 修复冗余代码
  • 重新思考逻辑
  • 删除未使用或无关的变量
  • 将常用值存储在变量中以减少冗余计算

混淆使代码难以阅读:

  • 用下划线或单个字母替换变量名(编译器不使用变量名)
  • 删除空格以创建不可读文本的中子星(编译器在内部执行此操作)
  • 删除评论(编译器不读评论)
  • 有时会添加无用的代码以进一步妨碍可读性(使程序运行速度变慢)

答案 1 :(得分:2)

嗯,你没有写过你想到的那种混淆(源代码级别?),但通常是:不,它不会。在像Javascript(或非常旧的解释基本方言)这样的语言中,有时混淆和优化是相辅相成的(缩短变量名,删除不必要的空格/缩进等),但不是像C ++这样的编译语言。

当然,有时某种误导性的优化会导致代码混淆,但这是另一回事。

答案 2 :(得分:0)

现在的C ++编译器真的非常聪明。主要优化来自宏观层面。即使是Blender的例子,也不需要删除未使用的变量,因为优化器无论如何都会删除它们。

混淆不会使您的代码更智能,它不会改变算法,也不会引入动态编程或任何类型。

我不明白为什么你会这么想。使用编译语言,您不必提供源代码,如果需要,您可以提供标题和库,但那些不会泄露实现细节。