Algorithm 模糊处理会使我的程序更优化吗 我用C++实现DES加密算法,我在一个非常大的文档(1.1MB)的文本上标明。

Algorithm 模糊处理会使我的程序更优化吗 我用C++实现DES加密算法,我在一个非常大的文档(1.1MB)的文本上标明。,algorithm,optimization,obfuscation,Algorithm,Optimization,Obfuscation,我现在已经达到了大约1.1秒的加密,我需要从中挤出更多的性能 我在考虑模糊处理,这有助于优化我的代码吗?好吧,你没有写下你想要的模糊处理类型(在源代码级别上),但通常:不,它不会。在像JavaScript(或非常古老的解释基本方言)这样的语言中,有时混淆和优化是密切相关的(缩短变量名,删除不必要的空白/缩进等),而不是像C++那样编译的语言。p> 当然,有时一些误导性的优化会导致代码混淆,但这是另一回事。好吧,你没有写下你想要的混淆类型(在源代码级别上?),但通常:不,不会。在像JavaScri

我现在已经达到了大约1.1秒的加密,我需要从中挤出更多的性能


我在考虑模糊处理,这有助于优化我的代码吗?

好吧,你没有写下你想要的模糊处理类型(在源代码级别上),但通常:不,它不会。在像JavaScript(或非常古老的解释基本方言)这样的语言中,有时混淆和优化是密切相关的(缩短变量名,删除不必要的空白/缩进等),而不是像C++那样编译的语言。p>
当然,有时一些误导性的优化会导致代码混淆,但这是另一回事。

好吧,你没有写下你想要的混淆类型(在源代码级别上?),但通常:不,不会。在像JavaScript(或非常古老的解释基本方言)这样的语言中,有时混淆和优化是密切相关的(缩短变量名,删除不必要的空白/缩进等),而不是像C++那样编译的语言。p>
当然,有时一些误导性的优化会导致代码模糊,但这是另一回事。

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

  • 修复冗余代码
  • 反思逻辑
  • 删除未使用或不重要的变量
  • 将常用值存储在变量中以减少冗余计算
混淆使代码更难阅读:

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

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

      • 修复冗余代码
      • 反思逻辑
      • 删除未使用或不重要的变量
      • 将常用值存储在变量中以减少冗余计算
      混淆使代码更难阅读:

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

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

      模糊处理不会使您的代码变得更智能,不会改变算法,不会引入动态编程或诸如此类的东西


      我不明白你为什么要那样。使用编译语言,您不必提供源代码,如果需要,您可以提供头文件和库,但它们不会泄露实现细节。

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

      模糊处理不会使您的代码变得更智能,不会改变算法,不会引入动态编程或诸如此类的东西


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

      混淆它不会使它更优化。但优化它可能会使它更加模糊。:)@匿名否决投票人:不要仅仅因为你不喜欢OP的想法就否决一个合法而明确的问题——至少他在质疑他的计划。DES现在太弱了——至少实现了三倍或更好的AES。你是否将你的1.1Mb文档存档?如果是这样,那么您的时间可能主要集中在磁盘IO上,而不是实际的DES代码上。用软件生成的文件测试它,比如说同一块重复多次,以避免任何磁盘访问@0x69的评论是正确的。最好使用AES。混淆它不会使它更优化。但优化它可能会使它更加模糊。:)@匿名否决投票人:不要仅仅因为你不喜欢OP的想法就否决一个合法而明确的问题——至少他在质疑他的计划。DES现在太弱了——至少实现了三倍或更好的AES。你是否将你的1.1Mb文档存档?如果是这样,那么您的时间可能主要集中在磁盘IO上,而不是实际的DES代码上。用软件生成的文件测试它,比如说同一块重复多次,以避免任何磁盘访问@0x69的评论是正确的。最好使用AES。@谢里夫:大多数现代C++编译器都将循环展开到优化程序中。也许你应该换一个编译器?@DocBrown,这里是visual studio 2010!!:我更喜欢GCC和Geany而不是visualstudio,但是我使用Linux。我不会完全依靠编译器来优化(但它确实会优化很多东西).@谢里夫:大多数现代C++编译器都将循环展开到优化程序中。也许你应该换一个编译器?@DocBrown,这里是visual studio 2010!!:我更喜欢GCC和Geany而不是visualstudio,但是我使用Linux。我不会完全依赖编译器来优化(但它确实优化了很多东西)。