相关疑难解决方法(0)

需要一种按日期对100 GB日志文件进行排序的方法

所以,由于一些奇怪的原因,我最终得到一个100GB的未分类日志文件(实际上它是部分排序的),而我试图应用的算法需要排序数据.日志文件中的一行看起来像这样

data <date> data data more data
Run Code Online (Sandbox Code Playgroud)

我可以在工作站上访问C#4.0和大约4 GB的RAM.我认为合并 - 某种类型在这里最好,但是我自己实现这些算法还不够 - 我想问一下我是否可以采取某种捷径.

顺便说一句,解析日期字符串DateTime.Parse()非常慢,占用了大量的CPU时间 - chugging -rate几乎是10 MB /秒.有比以下更快的方式吗?

    public static DateTime Parse(string data)
    {            
        int year, month, day;

        int.TryParse(data.Substring(0, 4), out year);
        int.TryParse(data.Substring(5, 2), out month);
        int.TryParse(data.Substring(8, 2), out day);

        return new DateTime(year, month, day);
    }
Run Code Online (Sandbox Code Playgroud)

我写道,为了加快速度DateTime.Parse(),它确实运行良好,但仍然需要大量的循环.

请注意,对于当前的日志文件,我也对小时,分钟和秒感兴趣.我知道我可以使用格式提供DateTime.Parse(),但这似乎并没有加快它的速度.

我正在寻找正确方向的推动,提前谢谢.

编辑:有些人建议我使用字符串比较来比较日期.这适用于排序阶段,但我确实需要解析算法的日期.我仍然不知道如何在4GB的免费RAM上对100GB文件进行排序,而无需手动操作.

编辑2:嗯,多亏了我使用windows排序的一些建议,我发现Linux上有类似的工具.基本上你叫sort,它会为你修复一切.正如我们所说,它正在做一些事情,我希望它能尽快结束.我正在使用的命令是

sort -k 2b 2008.log > 2008.sorted.log
Run Code Online (Sandbox Code Playgroud)

-k指定我要对第二行进行排序,第二行是通常YYYY-MM-DD hh:mm:ss.msek格式的日期时间字符串.我必须承认,man-pages缺乏解释所有选项,但我通过运行找到了很多例子info coreutils …

c# sorting date-sorting

33
推荐指数
5
解决办法
9364
查看次数

如何在C#中创建首字母大写

如何将文本中的第一个字母设置为大写?

例:

it is a text.  = It is a text.
Run Code Online (Sandbox Code Playgroud)

c#

22
推荐指数
5
解决办法
5万
查看次数

字符串连接时的性能 - 算法字符串字符串c#

我使用以下代码追加字符串

string res = string.Empty;
int ite = 100000;
for(int i= 0; i < ite; i++)
{
    res += "5";
}
Run Code Online (Sandbox Code Playgroud)

这花费了很多时间,所以我后来将代码更改为

string res = string.Empty;
int ite = 100000;
res = getStr(ite / 2) + getStr(ite - (ite / 2)); 

//body of getStr method
private static string getStr(int p)
{
    if (p == 1)
        return "5";
    else if (p == 0)
        return string.Empty;
    string r1 = getStr(p / 2); //recursive
    string r2 = getStr(p - (p / 2)); //recursive …
Run Code Online (Sandbox Code Playgroud)

c# string algorithm string-concatenation

4
推荐指数
1
解决办法
812
查看次数