草庐IT

优化Oracle

全部标签

c++ - 代码优化;切换与 if 的

我有一个问题,关于在一个经常被调用的函数中是使用“case”还是“ifs”。这是现在的以下内容,在“ifs”中;代码是不言自明的:intidentifyMsg(char*textbuff){if(!strcmp(textbuff,"text")){return1;}if(!strcmp(textbuff,"name")){return2;}if(!strcmp(textbuff,"list")){return3;}if(!strcmp(textbuff,"remv")){return4;}if(!strcmp(textbuff,"ipad")){return5;}if(!strcmp(

c++ - C++中进行良好性能优化的想法

好的,在过去三天里,我一直处于分析器结果的前面,该结果是通过自动化套件运行相当多的测试用例而产生的。这样做的目的是查看是否存在可以总体上提高性能的良好优化。在这种情况下,我将取得良好的成绩,具体如下:具有表现的潜力两者都是非常好的改进最后重要且可观察用户级别,例如>100%改善在表现不佳的地区。具有潜在的核心空间减少使用量减少50%以上在数据繁重的区域中。易于实现,且最少对代码的混淆和最小化副作用。即...的好处极大地实现优化超过成本。该应用程序是一个3d映射和建模程序包,在界面中具有大量图形,并在后端进行了几何处理。我已经在确保为大多数处理选择最佳算法方面做了很多工作,并且在此阶段,

c++ - 为什么即使在非常简单的情况下,volatile vars 也没有得到优化?

如果我编译代码intmain(){inti;i=1;i=2;}在带有发布和优化的VS中,反汇编看起来像:intmain(){inti;i=1;i=2;}010D1000xoreax,eax010D1002ret但是如果我写“volatile”这个词:intmain(){01261000pushecxvolatileinti;i=1;01261001movdwordptr[esp],1i=2;01261008movdwordptr[esp],2}0126100Fxoreax,eax01261011popecx01261012ret有谁知道为什么VS留下这段代码?它有任何副作用吗?它是程序

c++ - 为什么编译器不能优化这两条语句?

即使我在VisualC++中打开完全优化,编译器也无法优化main中的以下2条语句是否有任何原因?访问内存中的int变量有什么副作用吗?int_tmain(intargc,_TCHAR*argv[]){volatileintpleaseOptimizeMeOut=100;(pleaseOptimizeMeOut);return0;} 最佳答案 它无法优化它们,因为您已将变量声明为volatile。对volatile限定对象的加载和存储是C抽象机的“外部可见”效果的一部分。(顺便说一句,访问内存中的变量时有很多的副作用;它可以更新包括

c++ - 优化循环与代码复制

我的难题是如何最好地处理可以接受参数的长循环。考虑以下方法:voidHeavyLoop(byte*startingAddress,boolsecondaryModification){for(inti=0;i此方法将执行我想要的操作,但我在循环中使用了10000000个不必要的if。如果我像这样写同样的方法:voidHeavyLoop(byte*startingAddress,boolsecondaryModification){if(secondaryModification){for(inti=0;i我会得到相同的结果,尽管我的整个循环代码必须重复。如果我们讨论的是一个参数,这没什

使用触发器的Oracle审计表

我需要在Oracle11G中创建一个触发器来审核表。我有一个具有16列需要审核的桌子。对于每个新的插入表中,我需要在每列插入的审核表中输入一个条目,即在此情况下,将插入16行。对于每个更新,假设我更新第一和第二列,然后将在审核中创建两个记录,其旧值和新值。审核表的结构将是:idmod_col_nameOLDVALUENEWVALUEupd_timemod_user_id我的方法:createorreplacetriggermy_triggerafterupdateorinsertontemp12foreachrowdeclareTYPEtab_col_ntIStableofvarchar2(3

c++ - 是否允许编译器优化堆内存分配?

考虑以下使用new的简单代码(我知道没有delete[],但它不属于这个问题):intmain(){int*mem=newint[100];return0;}是否允许编译器优化new调用?在我的研究中,g++(5.2.0)和VisualStudio2015不优化new调用,whileclang(3.0+)does.所有测试都是在启用完全优化的情况下进行的(-O3用于g++和clang,用于VisualStudio的Release模式)。new不是在幕后进行系统调用,使得编译器不可能(并且非法)对其进行优化吗?编辑:我现在已经从程序中排除了未定义的行为:#includeintmain()

c++ - 在 C++ 环境中优化回归测试

为了避免过多的测试,我想向质量保证(QA)团队提供提示,说明哪些功能必须在开发迭代后进行回归测试。您知道可以在C++和Subversion(以及VisualStudio)开发环境中执行此操作的工具吗?有关用例的详细信息:特征将由开发团队在入门方面点,通常是类(class)或类(class)方法。比如说,功能“excel文件import"由方法定义类的ImportExcelFile(...)文件导入器。在开发迭代期间,开发团队promise了一些一些方法的改变类。比如说,这些类(class)之一被方法间接使用导入Excel文件()在迭代结束时,所有提交由该工具分析,并且生成并交付报告给质

c++ - 如何从 Oracle occi C++ api 记录原始 SQL?

我们的一位客户提示我们的应用程序无法正常工作。他们的理由是我们对他们的Oracle数据库的sql函数调用没有得到“预期”的结果。有时,它应该会失败,但我们的应用程序会从他们的数据库中获得成功。这真的很令人沮丧,因为这是他们的数据库,我们无法对其进行任何测试。我们正在使用C++OracleOCCIAPI。无论如何我们可以从我们这端记录原始sql吗?这将非常有帮助,我们可以将脚本发送给他们,让他们在他们的系统中进行调试以找出问题所在。提前致谢。 最佳答案 我假设您只是发出了一个SQL语句,因为您说您想要查看“您端的原始SQL”。那么,最

c++ - 是否有针对大量部分拷贝优化的 C++ STL 关联数据结构版本?

我有一棵大树,它会随着算法的进展而生长。每个节点都包含集合,我想它是作为平衡二叉搜索树实现的。每个节点的集合在该节点创建之后、用于创建该节点的子节点之前应保持固定。不过,我担心复制每一组都非常昂贵。相反,我更希望每个新创建的节点集都利用父节点集的所有适当部分。简而言之,我很高兴复制集合的O(logn)而不是O(n)。是否有提供这种部分复制优化的STL关联数据结构的变体?也许在升压?这样的数据结构在Haskell或OCaML中实现当然是微不足道的,但在C++中需要更多的努力。 最佳答案 我知道建议一种不同的语言通常不会产生什么效果,但