我有一个在Tomcat 5.5上运行的简单Web应用程序,其中log4j用于记录.偶尔我需要将日志记录推送到DEBUG,但大多数时候我对INFO感到满意.
我可以更改我的配置xml并重新启动应用程序,但我更愿意动态切换日志级别.有没有标准的技术?
似乎我所有的成年生活都受到VC++链接器的折磨或抱怨,因为各种库都不同意使用哪个版本的Runtime库.我从来没有心情去掌握那个令人沮丧的话题.所以我只是试着搞砸它直到它起作用.错误消息永远不会有用.关于这个问题的微软文档也没有 - 至少对我来说不是.
有时它找不到函数 - 因为名称错误不是预期的?有时它拒绝混合搭配.其他时候它只是说,"LINK:警告LNK4098:defaultlib'LIBCMTD'与使用其他库冲突;使用/ NODEFAULTLIB:库" 使用/ NODEFAULTLIB不起作用,但警告似乎是良性的.到底是什么"DEFAULTLIB"?链接器如何决定?我从来没有见过一种方法来指定链接器使用哪个运行时库,只是告诉编译器哪个库创建函数调用.
有"依赖性walker"程序可以检查目标文件以查看它们依赖的DLL.我刚刚在一个正在尝试构建的项目上运行了一个,这真是一团糟.有系统.libs和.dll需要冲突的运行时版本.例如,COMCTL32.DLL需要MSVCRT.DLL,但我正在与MSVCRTD.DLL链接.我正在寻找是否有COMCTL32D.DLL,即使我输入.
所以我想我要求的是如何对这些东西进行排序的教程.你做什么,你怎么做?
这就是我想我所知道的.如果有任何错误,请纠正我.
参数是Debug/Release,Multi-threaded/Single-threaded和static/DLL.仅涵盖八种可能组合中的六种.没有单线程DLL,无论是Debug还是Release.
这些设置仅影响链接到哪个运行时库(以及与之链接的调用约定).例如,如果要构建DLL,则不必使用基于DLL的运行时,在构建程序的Debug版本时也不必使用Debug版本的运行时,尽管它似乎有助于单个踩过系统调用.
奖金问题:任何人或任何公司怎么会造成这样的混乱?
如果未定义TEST宏,我想知道这两段代码是否存在性能差异:
void Func1(int a) {
...
}
#ifdef TEST
Func1(123);
#endif
Run Code Online (Sandbox Code Playgroud)
和:
void Func2(int a) {
#ifdef TEST
...
#endif
}
Func2(123);
Run Code Online (Sandbox Code Playgroud)
如果未定义TEST,Func2将成为编译器根本不应该调用的空函数,不是吗?
谢谢.
用于插入和搜索的trie数据结构的最佳/最差/平均情况复杂度(以Big-O表示法)是多少?
我认为这适用O(K)于所有情况,其中K是插入或搜索的任意字符串的长度.有人会证实吗?
是static_cast<T>(...)在编译时还是在运行时完成的事情?我用Google搜索了但我得到了不同的答案.
此外,dynamic_cast<T>(...)显然是运行时 - 但是呢reinterpret_cast<T>(...)?
我理解Python中局部变量和全局变量的概念,但我只是问一下为什么错误会出现在下面的代码中.Python逐行执行代码,因此在读取第5行之前,它不知道a是局部变量.在尝试执行第5行之后,Python会返回一行并将其标记为错误吗?
a=0
def test():
print a #line 4, Error : local variable 'a' referenced before assignment
a=0 #line 5
test()
Run Code Online (Sandbox Code Playgroud) 是否可以删除使用class_addMethod添加到类的方法?
或者如果我想这样做,我是否必须在运行时使用objc_allocateClassPair继续创建类,并为它们添加不同的方法集来改变实现的方法?
我会接受包含hackery的答案:-)
我遇到一个很奇怪的问题,我记录了我的会话因为我认为没有人会相信我.
我遇到了一个似乎处于非常基础的错误.这是一个单线程应用程序,我正在做的就是评估一个布尔值.
布尔值等于false,但if语句正在执行,好像它是真的......排序.你会明白我的意思.我已经清理了解决方案并重建了很多次.不知道发生了什么事.
我想要一些解释.
我正在做面试准备和审查图表实现.我一直看到的最重要的是邻接列表和邻接矩阵.当我们考虑基本操作的运行时,为什么我从未看到使用散列的数据结构?
例如,在Java中,通常会使用邻接列表ArrayList<LinkedList<Node>>,但为什么人们不使用HashMap<Node, HashSet<Node>>?
设n =节点数,m =边数.
在这两种实现方式,去掉了节点U包括通过所有的收藏和取出诉搜索.在邻接表,这是为O(n ^ 2),但在"邻接集",这是为O(n).同样,删除边缘涉及从v列表中删除节点u,从u列表中删除节点v.在邻接列表中,那是O(n),而在邻接集中,它是O(1).其他操作,例如查找节点后继,查找两个节点之间是否存在路径等,对于这两种实现都是相同的.空间复杂度也都是O(n + m).
我能想到的邻接集的唯一缺点是添加节点/边是分摊O(1),而在邻接列表中这样做是真正的O(1).
也许我没有看到任何东西,或者我在计算运行时忘了考虑事情,所以请告诉我.
我正在尝试更新UIView其中包含按钮和标签的框架.我想在更新它viewDidLayoutSubviews(我也试过viewDidLoad,viewWillAppear,viewDidAppear...).我想改变视图的y位置(origin.y).NSLogs说我的原始y位置是334,并且在更改之后,它是100.但是,在我看来,位置不会改变.我已经检查过故事板中的视图已连接.我究竟做错了什么?
-(void)viewDidLayoutSubviews
{
[super viewDidLayoutSubviews];
CGRect theFrame = [self.bottomView frame];
NSLog(@"Y position bottomview: %f", self.bottomView.frame.origin.y);
if([[UIScreen mainScreen] bounds].size.height == 568) //iPhone 4inch
{
// NSLog(@"iphone5");
}
else{
// NSLog(@"iphone4");
theFrame .origin.y = 100;
}
self.bottomView.frame = theFrame;
NSLog(@"Y position bottomview after changing it: %f", self.bottomView.frame.origin.y);
[self.view layoutIfNeeded];
}
Run Code Online (Sandbox Code Playgroud)