几年前,我参加了一个专家小组讨论相关高级嵌入式C程序员职位的候选人.
我问过的一个标准问题是优化技术.我很惊讶有些候选人没有答案.
因此,为了为后代制作一个列表,您在优化C程序时通常使用哪些技术和结构?
接受优化速度和大小的答案.
图形和音频编辑和处理软件通常包含称为"高通滤波器"和"低通滤波器"的功能.究竟是做什么的,以及实现它们的算法是什么?
几年前,我被告知有关代码重用的研究.显然,人们发现,平均而言,程序员在搜索要重用的代码时会有7分钟的窗口.如果他们在该窗口中找不到适合他们需求的代码,他们就会编写自己的代码.
这是在需要仔细管理代码以供重用以确保您可以在窗口中找到所需内容的上下文中介绍的.
您(个人和组织)如何管理您的源以使其更容易重用?您是否专门维护重用库?如果是这样,您如何对其进行索引以最大化您的命中率?
这可能是一个概念上愚蠢的问题,但也可能不是,因为我还是学生,我想我应该没问题.
想象一下,你有一个方法,如果给定某些条件,它将抛出一个NumberFormatException.我想编写一个单元测试来查看异常是否正确.我怎样才能做到这一点?
PS我正在使用JUnit编写单元测试.
谢谢.
所以你刚刚被The Boss放在了现场.你有15分钟的时间来提出增加一些新功能的信封估计值.你的老板(幸运的是)认识到你无法在那段时间内提供准确的估计,所以期待一些正确的数量级.
问题是你如何在准确到一个数量级的时间范围内做出估计?
如何通过SMPP直接发送短信?我的提供商提供了一个SMPP接口来发送短信,如何将其连接到它?是否有任何图书馆或示例可以教我使用SMPP发送?也许使用PHP?还是C#?
在过去,我曾与许多专门编写GUI应用程序的程序员合作过.
我得到的印象是,他们几乎普遍最小化了在他们的应用程序中使用多个线程.在某些情况下,他们似乎已经竭尽全力确保他们使用单个线程.
这是常见的吗?这是gui应用程序设计的普遍接受的哲学吗?
如果是这样,为什么?
[编辑]
有许多答案说应该最小化线程使用以降低复杂性.一般来说降低复杂性是一件好事.
但是,如果你看看对外部事件的响应至关重要的任何数量的应用程序(例如,Web服务器,任何数量的嵌入式应用程序),对线程使用的态度似乎存在差异.
简短版本:我想知道在DLL中使用CPU特定指令是否可能,以及如何最好?
稍长版本:从Microsoft下载(32位)DLL时,似乎一个尺寸适合所有处理器.
这是否意味着它们是为最低公分母(即操作系统支持的最低平台)而严格构建的?或者是否有一些技术用于导出DLL中的单个接口,但在幕后使用CPU特定代码以获得最佳性能?如果是这样,它是如何完成的?
编辑其他进程内存的程序如何工作,例如Cheat Engine和iHaxGamez?我的理解是,从另一个进程的内存中读取(更不用说写入)的过程是分段错误的直接原因.
当我想要一个标志数组时,它通常会让我使用整个字节(或单词)来存储每个标志,如果我创建了一个bools或其他数字类型的数组,可以设置为0或者但是现在我想知道是否使用更节省空间的结构是值得的,因为(虽然希望非常轻微)移位和位测试的额外开销.
在我的公司,我们使用Rogue Wave工具(虽然希望不会更长),而且RWBitVec直到现在我才将它用于此目的.
optimization ×3
algorithm ×1
audio ×1
c ×1
code-reuse ×1
dll ×1
estimation ×1
graphics ×1
java ×1
junit ×1
linux ×1
memory ×1
performance ×1
photoshop ×1
smpp ×1
sms ×1
unit-testing ×1
windows ×1