大多数拥有CS学位的人肯定会知道Big O代表什么.它可以帮助我们衡量算法的实际效率(如何),如果你知道你试图解决的问题属于哪个类别,你可以弄清楚是否仍然可以挤出那么少的额外性能.1
但我很好奇,你如何计算或近似算法的复杂性?
1 但正如他们所说,不要过度,过早优化是所有邪恶的根源,没有正当理由的优化也应该得到这个名称.
我想将我的编程视野扩展到Linux.一个好的,可靠的基本工具集很重要,什么比IDE更基本?
我可以找到这些SO主题:
我不是在寻找轻量级的 IDE.如果IDE值得花钱,那么我会付钱,所以它不需要是免费的.
那么我的问题是:
什么好的,C++编程IDE可用于Linux?
最小值是相当标准的:语法突出显示,代码完成(如intellisense或其Eclipse对应)和集成调试(例如,基本断点).
我自己也在搜索它,但有很多东西几乎不可能手工分离好东西,特别是像我这样在Linux上几乎没有C++编码经验的人.我知道Eclipse支持C++,我真的很喜欢Java for IDE,但它对C++有什么好处,还有更好的东西吗?
第二篇文章实际上有一些很好的建议,但我缺少的是究竟是什么让这个吸收的IDE对用户如此好,它的(dis)优势是什么?
也许我的问题应该是:
您提出了什么IDE(根据您的经验),为什么?
在学习新的编程语言时,您可能遇到的一个可能的障碍是,默认情况下,该语言是按值传递还是按引用传递.
所以这是我对你们所有人的问题,用你最喜欢的语言,它是如何实际完成的?什么是可能的陷阱?
language-agnostic oop parameters pass-by-reference pass-by-value
在学习"汇编语言"(在使用GNU作为汇编程序的x86架构上的linux中)时,其中一个时刻就是使用系统调用的可能性.这些系统调用非常方便,有时甚至是必需的,因为您的程序在用户空间中运行.
然而,系统调用在性能方面相当昂贵,因为它们需要中断(当然还有系统调用),这意味着必须从用户空间中的当前活动程序到内核空间中运行的系统进行上下文切换.
我想说的是:我目前正在实现一个编译器(用于大学项目),我想要添加的一个额外功能是支持多线程代码以提高编译程序的性能.因为一些多线程代码将由编译器本身自动生成,所以这几乎可以保证其中也会有很少的多线程代码.为了获得性能,我必须确保使用线程可以实现这一点.
但我担心的是,为了使用线程,我必须进行系统调用和必要的中断.因此,微小的(自动生成的)线程将受到进行这些系统调用所花费的时间的极大影响,这甚至可能导致性能损失......
因此,我的问题是双重的(在其下面有一个额外的奖励问题):
我的猜测是没有系统调用就不可能有多线程汇编程序代码.即使是这种情况,您是否有建议(甚至更好:一些实际代码)尽可能高效地实现线程?
在我的项目中,针对SQL Server执行的SQL语句由于某种未知原因而失败.一些代码已经在生产中使用,因此调试它并不是一件容易的事.因此,我需要一种方法来在数据库中查看使用的SQL语句,因为语句是在项目运行时生成的,并且在满足某些条件时可能存在缺陷.
因此,我考虑过监控收到的陈述并检查自己是否有任何缺陷的可能性.
数据库在SQL Server 2005上运行,我使用SQL Server management studio express作为操作数据库的主要工具.所以我的问题是,最好的方法是什么?
我有这个天真的正则表达式"<([\ s] | [^ <])+?>"(不包括引号).它看起来很简单,但它对下面的HTML文本起作用时确实是邪恶的.它将Java正则表达式引擎发送到无限循环.
我有另一个正则表达式("<.+?>"),这有点相同,但它不会杀死任何东西.你知道为什么会这样吗?
<script language="JavaScript" type="text/javascript">
var numDivs, layerName;
layerName = "lnavLayer";
catLinkName = "category";
numDivs = 2;
function toggleLayer(layerID){
if (!(navigator.appName == "Netscape" && navigator.appVersion.substr(0, 1) < 5)){
thisLayer = document.getElementById(layerName + layerID);
categoryLink = document.getElementById(catLinkName + layerID);
closeThem();
if (thisLayer.className == 'subnavDefault'){
thisLayer.className = 'subnavToggled';
categoryLink.className = 'leftnavLinkSelectedSection';
}
}
}
function closeThem(){
for(x = 0; x < numDivs; x++){
theLayer = document.getElementById(layerName + (x
+ 1));
thecategoryLink = document.getElementById(catLinkName + (x + 1));
theLayer.className …
Run Code Online (Sandbox Code Playgroud) 我在使用singleton模式初始化smalltalk中的实例变量时遇到了麻烦.(这里是另一个实现的链接以便澄清)
这就是我所拥有的:
new
^UniqueInstance ifNil: [UniqueInstance := self basicNew.
UniqueInstance: instanceVar := Object new. ].
Run Code Online (Sandbox Code Playgroud)
最后一行(UniqueInstance:instanceVar:= Object new.)不起作用,但基本上我需要做的是:在将UniqueInstance返回给调用者之前,将instanceVar实例化为Object.
请注意,此"new"方法用作类实例化,并且该库是UniqueIsntance的实例变量(所需类的isntance).
谁能指出我正确的方向?
linux ×2
algorithm ×1
assembly ×1
big-o ×1
c++ ×1
ide ×1
java ×1
monitoring ×1
oop ×1
optimization ×1
parameters ×1
performance ×1
regex ×1
singleton ×1
smalltalk ×1
sql ×1
sql-server ×1