Tag: 优化

Python的基本优化模式有什么用? (python -O)

Python有一个标志-O ,你可以执行解释器。 该选项将生成“优化”的字节码(写入.pyo文件),并给出两次,它会丢弃文档。 从Python的手册页: -O打开基本的优化。 这将编译(字节码)文件的文件扩展名从.pyc更改为.pyo。 给定两次,导致docstrings被丢弃。 这个选项的两个主要特点,我看到它是: 剥离所有断言语句。 这为防止腐败的程序状态提供了防御速度。 但是,你不需要大量的声明来做出改变吗? 你有任何代码,这是值得的(和理智?) 去除所有文档。 在什么应用程序的内存使用如此重要,这是一个胜利? 为什么不把所有的东西都放到C语言模块中? 这个选项有什么用? 它有真实世界的价值吗?

Android Studio – 如何ZipAlign apk

我已经使用Android Studio创build了一个已签名的apk,现在我要去zipalign,我已经阅读了这个: http : //developer.android.com/tools/help/zipalign.html,但我仍然不确定在哪里添加代码行,它是在Gradle文件中,并在文件中添加行吗?

为什么GCC不优化结构?

系统要求某些原语与内存中的某些点alignment(整数字节是4的倍数,短到字节的倍数是2等)。 当然,这些可以优化浪费最less的空间填充。 我的问题是为什么不GCC自动执行此操作? 缺乏某种方式的更明显的启发式(从最大尺寸要求到最小的顺序variables)? 是否一些代码依赖于它的结构的物理顺序(这是一个好主意)? 我只是问,因为海湾合作委员会是在很多方面超级优化,而不是在这一个,我想一定有一些相对较酷的解释(我不知道)。

全局variables是否代表更快的代码?

我最近在一篇关于 1996年写的游戏编程的文章中读到,使用全局variables比传递参数要快。 这是否真的如此,如果是这样,今天这仍然是真的吗?

加速Python

这实际上是两个问题,但它们非常相似,为了保持简单,我想我只是把它们放在一起: 首先 :给定一个已经build立的python项目,有什么体面的方法可以加速超越简单的代码内优化? 其次 :在python中从头开始编写程序时,有什么方法可以大大提高性能? 对于第一个问题,想象一下你是一个写得很好的项目,你需要提高性能,但是你通过重构/优化似乎无法获得太多收获。 在这种情况下,你会怎么做才能加快速度呢?

什么是最快的:(int),Convert.ToInt32(x)或Int32.Parse(x)?

以下哪个代码是最快/转换某个对象x的最佳做法? int myInt = (int)x; 要么 int myInt = Convert.ToInt32(x); 要么 int myInt = Int32.Parse(x); 或者在string“s”的情况下, int myInt; Int32.TryParse(s, out myInt); 我很好奇哪个执行最快的数据types有一个方法在转换,而不仅仅是整数。 我只是用int作为例子。 编辑:这种情况来自从数据表获取信息。 Will(int)仍然工作最快? 从一些testing中,当对象x = 123123123时,int执行速度最快,就像很多人所说的那样。 当x是一个string时,Parse运行速度最快(注:cast会抛出一个exception)。 我真正好奇的是,在以下列方式检索值时,它们是如何运行的: foreach(DataRow row in someTable.Rows) { myInt = (int)row["some int value"]; myInt2 = Int.Parse(row["some int value"]); myInt2 = Convert.ToInt32(row["some int value"]); }

C和C ++优化器通常知道哪些函数没有副作用吗?

对于非常常见的math函数,比如sin,cos等等,编译器是否意识到它们没有副作用,并且能够将它们移动到外部循环? 例如 // Unoptimized double YSinX(double x,int y) { double total = 0.0; for (int i = 0; i < y; i++) total += sin(x); return total; } // Manually optimized double YSinX(double x,int y) { double total = 0.0, sinx = sin(x); for (int i = 0; i < y; i++) total += sinx; […]

过时的Java优化技巧

Java编译器已经淘汰了大量性能技巧,特别是Profile-guided优化 。 例如,这些平台提供的优化可以大幅(根据来源)降低虚函数调用的成本。 虚拟机也可以方法内联,循环展开等 还有哪些其他的性能优化技术还在应用中,但实际上已经被更现代的JVM中的优化机制所淘汰了?

仅通过公共交通工具find最佳路线的策略?

寻找汽车的路线非常简单:您可以存储所有道路的加权graphics,并且可以使用Djikstraalgorithm [1]。 公交线路不太明显。 有了公共汽车,你必须代表“等待下一class车10分钟”或者“走一个车站到另一个公交车站”,然后把它们input你的寻路algorithm。 这对于汽车来说并不总是那么简单。 在一些城市,有些道路早上只能单向进城,晚上只能单向进城。 一些先进的GPS知道如何避免高峰时段的繁忙路线。 你将如何高效地表示这种时间相关图并find路线? 没有必要有一个可certificate的最佳解决scheme; 如果旅客想要准时,他们会买车。 😉 [1]一个很好的algorithm,在一个例子中提到,因为每个人都听说过它,虽然A *是这个应用程序的更可能的select。

在C ++中优化空间而不是速度

当你说“优化”时,人们倾向于认为“速度”。 但是embedded式系统的速度并不是那么重要,但是内存是一个主要的限制因素呢? 什么是一些指导方针,技巧和技巧,可用于削减ROM和RAM中的这些额外的千字节? 一个“configuration文件”代码如何看到内存膨胀在哪里? PS有人可能会争辩说,在embedded式系统中过早地优化空间并不是那么糟糕,因为你为数据存储和蠕变提供了更多的空间。 它还允许您降低硬件生产成本,因为您的代码可以在较小的ROM / RAM上运行。 PPS也欢迎参考文章和书籍! PPPS这些问题密切相关: 404615,1561629