如何在CPP中以最快的方式对HTML访问日志进行分类
How to sort an html access log in fastest way in cpp
本地 - [24/OCT/1994:13:41:41 -0600]"获取index.html http/1.0" 200 150
本地 - [24/OCT/1994:13:41:41 -0600]"获取1.gif http/1.0" 200 1210
本地 - [24/OCT/1994:13:43:13 -0600]"获取index.html http/1.0" 200 3185
远程 - [24/OCT/1994:13:43:14 -0600]"获取2.GIF HTTP/1.0" 200 2555
本地 - [24/OCT/1994:13:43:13 -0600]"获取index.html http/1.0" 200 32618
如示例中,我有一个访问日志,其中包含大约700.000个文本格式日志。
"代表我们的HTML页面,第一个整数是我们的http答复代码,该代码将被忽略,第二个整数是回复,我们将使用来计算访问者号码。时间戳将被忽略。我们将为每个网站日志的总访问者编号排序。我应该使用哪种数据结构方法?我需要一些建议。
如果您只是想用URL计数访问者,则无需编写程序来执行此操作。
elb-logs, 515> wc -l /tmp/$$
874597 /tmp/4028
elb-logs, 516> time ( grep GET /tmp/$$ | sed -e 's/.*"GET //' | sed -e 's/ .*//' | sort | uniq -c | sort -n > /tmp/example )
real 0m11.185s
user 0m13.872s
sys 0m0.476s
为我提供了URL的计数,以获取请求。如果我想做类似URL的字节数之类的事情,我将使用awk
。
诚然,我用来执行此操作的笔记本电脑具有12 GB的RAM和一个SSD,因此会影响数字。但是,即使运行这样的命令管道需要一分钟的时间,它仍然比编写和调试C 程序所需的时间要少得多。
相关文章:
- 通过方法访问结构
- 使用不带参数的函数访问结构元素
- 如果我只是不访问queue_front节点的子节点,而是将它们推到队列中呢?还是BFS吗
- 用于访问容器<T>数据成员的正确 API
- 访问者访问变体并返回不同类型时出错
- 尝试通过多个向量访问变量时,向量下标超出范围
- 无法访问嵌套类.类的使用无效
- 写入位置0x0000000C时发生访问冲突
- 我们可以访问一个不存在的联盟的成员吗
- C++从另一个类访问公共静态向量的正确方法是什么
- 我的简单if-else语句是如何无法访问的代码
- 从C++dll访问C#中的一行主要参数
- 概念TS检查忽略私有访问修饰符
- 如何在CPP中以最快的方式对HTML访问日志进行分类
- 如何从HTML输入中读取数据,并将数据本地写入文件以供将来访问
- 如何在 QT 中访问 HTML 脚本变量
- 通过浏览器使用 Java/C 访问 HTML TextField 组件
- 在事件DownloadComplete上访问HTML源代码
- 访问用QNetworkReply检索的html表
- 如何访问html资源文件