Questions tagged «efficiency»

请使用此标记来比较各种系统或算法或衡量效率的方法的效率。大O表示法与复杂度更多相关,但可能会影响效率。


5
是Python解释还是编译?
这只是我在阅读有关解释和编译语言时的一个奇迹。 Ruby无疑是一种解释型语言,因为源代码在执行时由解释器处理。 相反,C是一种编译语言,因为必须先根据机器编译源代码,然后再执行。这样可以更快地执行。 现在开始使用Python: 导入时,Python代码(somefile.py)在同一目录中创建文件(somefile.pyc)。让我们说导入是在python shell或django模块中完成的。导入后,我稍稍更改了代码,然后再次执行导入的功能,以发现它仍在运行旧代码。这表明* .pyc文件是类似于编译C文件后创建的可执行文件的已编译python文件,尽管我无法直接执行* .pyc文件。 当直接执行python文件(somefile.py)(./somefile.py或python somefile.py)时,不会创建.pyc文件,并且按指示解释行为的方式执行代码。 这些建议每次在新过程中导入python代码时都会编译python代码,以创建.pyc,而直接执行时会对其进行解释。 那么我应该将其视为哪种类型的语言?解释还是编译?以及它的效率与解释和编译语言相比如何? 根据Wiki的“ 解释语言”页面,它被列为编译为虚拟机代码的语言,这是什么意思?

10
为什么没有基于高级语言的操作系统?低级语言是否更有效?
在不冒昧的情况下,我想请您考虑一下这种可能性。如今,大多数操作系统都基于相当低级的语言(主要是C / C ++),即使是新的操作系统(例如Android)也使用JNI,底层实现也使用C语言 实际上,(这是一个个人观察),许多用C编写的程序的运行速度比其高级程序要快得多(例如:传输(Ubuntu上的bittorrent客户端)比Vuze(Java)或Deluge(Python)快很多。 )。即使PyPy是一个例外,即使python编译器也是用C编写的。 那么,这是否有特定原因?为什么我们所有具有出色的“ OOP”概念的所谓“高级语言”都不能用于构建可靠的OS? 所以我基本上有两个问题。 为什么用低级语言编写的应用程序比HLL同行更有效?低级语言是否会由于低级语言和更容易转换为机器代码的简单原因而表现更好? 为什么我们没有完全基于高级语言的成熟操作系统?

10
关于在家工作的(弊端)优势是否有确凿的数据?[关闭]
是否有关于在家工作的优缺点的硬数据(研究,比较,不公正的感觉分析)? 我的开发人员询问例如每周有一天在家里工作,老板出于各种原因不喜欢它,我同意其中的一些原因,但我认为它们不一定适用于这种情况。 我们有真实的办公室(每人2..3人),分散注意力的情况仍然很普遍。IMO将有助于集中精力,每周工作1天,不会在交互和沟通上造成太多损失。此外,这将是一个很好的选择,并且可以节省通勤。 相关:远程/在家工作的利弊 (有趣的观点,但没有确凿的事实) 需要说明的是:这不是我的决定,我同意视情况而定是赞成与反对,我们正在努力争取“尝试一下”。我之所以提出这个具体问题,是因为(a)在与工程师老板争吵时,事实是一个很好的补充;(b)作为开发人员,我们应该像所有值得尊敬的交易一样,基于事实。

3
创建新的数据库表而不使用枚举数据类型是否浪费资源?
假设我提供4种服务类型(它们不太可能经常更改): 测试中 设计 程式设计 其他 假设我有60-80个实际服务,每个服务都属于上述类别之一。例如,“服务”可以是“使用技术A的测试程序”,并且类型为“测试”。 我想将它们编码到数据库中。我想出了一些选择: 选项0: 使用VARCHAR直接直接编码的业务类型为字符串 选项1: 使用数据库enum。但是,枚举是邪恶的 选项2: 使用两个表: service_line_item (id, service_type_id INT, description VARCHAR); service_type (id, service_type VARCHAR); 我什至可以享受参照完整性: ALTER service_line_item ADD FOREIGN KEY (service_type_id) REFERENCES service_type (id); 听起来不错,是吗? 但是我仍然必须对事物进行编码并处理整数,即在填充表时。或者在填充或处理表时必须创建精心设计的程序或数据库结构。即,在直接处理数据库或在编程端创建新的面向对象的实体并确保我正确操作它们时,可以使用JOIN。 选项3: 不使用enum,不使用两个表,而只使用一个整数列 service_line_item ( id, service_type INT, -- use 0, 1, 2, 3 (for service …


11
当我测试C中移位和乘法之间的时间差异时,没有差异。为什么?
有人告诉我,二进制移位比乘以2 ^ k要有效得多。因此,我想尝试一下,并使用以下代码对此进行了测试: #include <time.h> #include <stdio.h> int main() { clock_t launch = clock(); int test = 0x01; int runs; //simple loop that oscillates between int 1 and int 2 for (runs = 0; runs < 100000000; runs++) { // I first compiled + ran it a few times with …

18
为什么公司不购买开发商娱乐工具?[关闭]
很多时候,当我对发展感到厌倦,而我的思想(在家里)对我没有任何帮助时,我只是做些有趣的事情,我的思想就可以腾出更多的时间来解决问题,并且可以解决问题。但是,当我向经理推荐这种技术作为提高开发人员生产率和效率的技术时,他拒绝接受工作不是娱乐的理由。我认为这个公式对我有用。其他开发人员也是如此: 2 hours of productive work + 30 minutes of entertainment > 3 hours of dull work 为什么公司不相信它? 更新:我不知道为什么这已经关闭作为题外话。如果您觉得这很重要,请投票重新打开它。

7
反对复活节彩蛋有哪些论点?是否有任何论点甚至支持复活节彩蛋?[关闭]
我有点开玩笑,所以复活节彩蛋的念头仍然吸引着我。我之前已经在代码中添加了它们,但是我的一群朋友开玩笑说使用CTRL-FU来触发鸡蛋。 现在,我对性能也有些偏执,因此我希望尽可能消除多余的性能。这与复活节彩蛋非常矛盾,因为它们是100%多余的代码。 反对复活节彩蛋有哪些论点?另外,是否有任何论点甚至支持复活节彩蛋?

5
在什么时候异步读取磁盘I / O比同步更有效?
假设有一些代码可以读取多个使用者的文件,并且文件的大小是任意的:异步读取文件的效率如何提高?或者换一种说法,要同步读取文件,文件必须快到多小? 我注意到(也许我不正确),当读取非常小的文件时,异步读取它们比同步读取(尤其是.NET)需要更长的时间。我假设这与设置时间有关,例如I / O完成端口,线程等。 有什么经验法则可以帮助您吗?还是取决于系统和环境?
22 efficiency  async  io 

8
为什么将需要排序数据的二进制搜索比线性搜索更好?
我一直听说线性搜索是一种幼稚的方法,并且由于渐近复杂性的提高,二进制搜索的性能要优于线性搜索。但是我从来不明白为什么在二进制搜索之前需要排序时,为什么它比线性搜索更好? 线性搜索为O(n),二进制搜索为O(log n)。这似乎是说二进制搜索更好的基础。但是二进制搜索需要O(n log n)对最佳算法进行排序。因此,二进制搜索实际上不应该更快,因为它需要排序。 我正在阅读CLRS,作者在其中表示,在插入排序中而不是使用朴素的线性搜索方法,最好使用二进制搜索来查找必须插入项目的位置。在这种情况下,这似乎是合理的,因为在每次循环迭代时,都有一个可以应用二分查找的排序列表。但是在通常情况下,对于不能保证我们需要搜索的数据集,由于排序要求,使用二进制搜索实际上并不比线性搜索差吗? 我是否忽略了使二进制搜索比线性搜索更好的实际考虑因素?还是不考虑排序所需的计算时间而认为二进制搜索比线性搜索更好?

5
如何降低计算机的速度(出于测试目的)?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 正如大多数人所同意的那样,鼓励开发人员通过给他们慢速的机器来编写快速的代码不是一个好主意。但是这个问题有一点。我的开发机器速度很快,因此我偶尔会写出效率低下的代码,但是只有在其他人的机器上运行它时,这些代码才变得显而易见。 有什么好的方法可以暂时降低涡轮增压的开发机器的速度?“速度”的概念包括几个因素,例如: CPU时钟频率。 CPU核心数量。 内存和处理器缓存的数量。 各种公交车的速度。 磁盘I / O。 GPU。 等等
20 efficiency 

7
模块化编程会影响计算时间吗?
每个人都说我应该使代码模块化,但是如果我使用更多的方法调用而不是更少但更大的方法,效率会降低吗?Java,C或C ++有什么区别? 我知道编辑,阅读和理解起来更容易,尤其是在小组中。那么,与代码整理优势相比,计算时间损失微不足道吗?
19 java  c++  c  efficiency 

8
如果只花很长时间测试代码,如何有效编程?
我的工作流程一直是编写一个逻辑步骤,然后运行程序并检查输出。这个过程非常适合我在大学中的作业。但是,随着我进行更多的开发,通常仅编译和运行代码就需要1-2分钟的时间。示例包括将程序上载到微控制器,需要与外部服务器进行交互以及由于身份验证,软件体系结构或复杂性而无法实现自动化。 这些类型的任务非常不适合我通常的编程方式,并且我在有效编码方面遇到困难。我通常会犯很多语法错误和逻辑错误,其中大部分我很容易通过测试发现。但是,由于等待时间如此长,因此此方法非常耗时。
16 efficiency  time 

6
您如何管理其他员工遗留的项目?[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 碰巧有些人突然离开了公司。现在,他的工作需要完成,您将获得分配。不知道他在做什么(完成了90%还是9%),您如何处理剩菜? 我应该从头开始吗?如果完成90%怎么办? 我可以尝试了解他所做的一切吗?如果这只是胡说八道怎么办?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.