我正在开发一个需要解析日志文件的项目.我正在寻找一个快速的算法,将采取像这样的组消息:
P1的温度为35°F.
P1的温度为40°F.
P3的温度为35F.
记录器停了下来.
记录器开始了.
P1的温度为40°F.
并以printf()的形式提出一些东西:
"The temperature at P%d is %dF.", Int1, Int2"
{(1,35), (1, 40), (3, 35), (1,40)}
Run Code Online (Sandbox Code Playgroud)
该算法需要足够通用以识别消息组中的几乎任何数据负载.
我尝试搜索这种技术,但我甚至不知道要搜索的正确术语.
我们有几年的代码库,所有原始开发人员早已不复存在.它使用许多线程,但没有明显的设计或通用的架构原则.每个开发者有自己的多线程编程的风格,使某些线程使用队列互相通信,与互斥锁的一些数据,一些锁旗语,对过程内的通信部分使用操作系统IPC机制.没有设计文档,评论很少.这是一个烂摊子,它似乎是,每当我们试图重构代码,或增加新的功能,我们引入死锁或其他问题.
那么,有没有人知道任何有助于分析和记录线程之间所有交互的工具或技术?FWIW,代码库是Linux上的C++,但我很想知道其他环境的工具.
我很欣赏到目前为止收到的回复,但我希望得到一些更复杂或更系统的东西,而不是基本上是"添加日志消息,弄清楚发生了什么,并修复它"的建议.有许多工具可用于分析和记录单线程程序中的控制流程; 没有什么可用于多线程程序?
另请参阅调试多线程应用程序
我正在开发一个小型webapp,我想使用Groovy为我的应用程序编写一些单元测试.我的大部分编码都是在Eclipse上完成的,我真的想用Eclipse中的图形测试运行器运行所有的单元测试(我真的很喜欢绿色吧:))
可悲的是,经过4个小时的尝试和错误,我仍然无法正确设置.我尝试使用Eclipse Junit4测试运行器来运行Groovy文件,其中的方法注释用于测试@Test.但它一直在抱怨NoClassDefFoundException
有人可以帮忙吗?
这是我的groovy文件的内容,名为simpleTest.groovy
import org.junit.Test
import static org.junit.Assert.assertEquals
class simpleTest{
@Test
void trial(){
assertEquals 6, 3+3
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?
我试图找到一种访问一组容器的通用方法.除了另一个自定义列表外,我还有一个标准的矢量和列表.
自定义列表定义了一个迭代器;
class Iterator: public std::iterator<std::forward_iterator_tag, T> {
// ...
}
Iterator begin() {
return (Iterator(root));
}
Iterator end() {
return (Iterator(NULL));
}
Run Code Online (Sandbox Code Playgroud)
与适当的运算符重载.
理想情况下,我想这样做;
class Foo {
public:
Foo() {
std::list<int> x;
std::vector<int> y;
custom_list<int> z;
iter = x.begin(); // OR
iter = y.begin(); // OR
iter = z.begin();
// ...
};
private:
std::iterator<int> iter;
};
Run Code Online (Sandbox Code Playgroud)
但显然这些都是不同类型的迭代器.我可以假设所有容器都是相同类型的.
有没有一种优雅的方法来解决这个问题?
这是我在另一个论坛上提出的一个问题,该问题得到了一些不错的答案,但我想知道这里是否有人有更多的见解.
问题是,当Web应用程序中的某个页面进入存储过程调用时会超时,因此您使用Sql Profiler或应用程序跟踪日志来查找查询并将其粘贴到管理工作室中我们为什么运行缓慢.但是你从那里开始运行它只是开始燃烧,每次返回不到一秒钟.
我的具体案例是使用ASP.NET 2.0和Sql Server 2005,但我认为这个问题可能适用于任何RDBMS系统.
我有一个访问WCF Web服务的silverlight 2 beta 2应用程序.因此,它目前只能使用basicHttp绑定.Web服务将返回相当大量的XML数据.从带宽使用的角度来看,这看起来相当浪费,因为如果压缩,响应会小5倍(我实际上将响应粘贴到txt文件中并压缩它.).
请求确实有"Accept-Encoding:gzip,deflate" - 有没有办法让WCF服务gzip(或以其他方式压缩)响应?
我确实找到了这个链接,但它确实看起来有点复杂的功能应该是开箱即用的恕我直言.
好的 - 首先我使用System.IO.Compression作为答案标记了解决方案,因为我无法"看起来"让IIS7动态压缩工作.事实证明:
在IIS7动态压缩是一起工作的人.只是Nikhil的IE开发人员Helper插件没有显示它的工作原理.我的猜测是,由于SL将Web服务调用关闭到浏览器,浏览器"在幕后"处理它,而Nikhil的工具永远不会看到压缩响应.我能够通过使用Fiddler来确认这一点,Fiddler监视浏览器应用程序外部的流量.事实上,在提琴手中,响应是gzip压缩的!
System.IO.Compression解决方案的另一个问题是Silverlight CLR中不存在System.IO.Compression.
因此,从我的角度来看,在Silverlight中启用WCF压缩的EASIEST方法是在IIS7中启用动态压缩并且根本不编写任何代码.
我理解JS是如何运行的,我认为我理解大多数DOM,但我不知道动画.有没有人知道一个好的指南,可以向我解释它是如何在Javascript中完成的?
另外,我应该考虑Javascript动画吗?我应该寻找学习闪光灯吗?
我一直在用
Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
现在可以获得用户桌面的路径,但是由于我们在工作中更改了设置,因此我们使用文件夹重定向将用户的桌面和我的文档文件夹映射到服务器,它不再有效.它仍然指向C:\ Documents and Settings中的Desktop文件夹,这不是我的桌面所在的位置.
有想法该怎么解决这个吗?
伯恩斯
我正在开发一个MFC应用程序,我最近一直在寻找一种从Windows标题栏中删除图标的好方法,但保留关闭按钮.两个明显的候选解决方案是关闭系统菜单样式或使用工具窗口样式,但我不想禁用系统菜单或使用缩小的工具窗口标题栏.许多MFC应用程序都具有此功能,所以我想知道:我是否缺少一些标准的方法来执行此操作?
c++ ×2
.net ×1
algorithm ×1
animation ×1
compression ×1
concurrency ×1
containers ×1
eclipse ×1
generics ×1
groovy ×1
gzip ×1
iteration ×1
java ×1
javascript ×1
junit ×1
linked-list ×1
logging ×1
mfc ×1
normalizing ×1
parsing ×1
printf ×1
silverlight ×1
sql ×1
sql-server ×1
wcf ×1
windows ×1