闲来的时候做了个tail 程序,和*nix下的tail功能一样
Usage: ./tail -n nnnn filename
lua版本代码 20行, c版本代码173行,开发速度大概差5倍。
代码效率:
time tail -n 1000000 /var/log/haproxy.log >/dev/null 从log文件尾巴中抽取1000000行。
1.linux 版本的tail:
real 0m0.330s
user 0m0.172s
sys 0m0.156s
2. c版本的tail:
real 0m0.398s
user 0m0.156s
sys 0m0.244s
3. lua版本的tail:
real 0m40.263s
user 0m37.082s
sys 0m2.248s
速度相差将近100倍。
总结:c 还是快好多,但是开发速度太慢,排错困难,而且需要大量的技巧。
lua开发速度快,性能也足够满足一般的需要了。
这个小程序很有意思, 源码见附件,欢迎大家挑战linux下的tail性能,我花了一个晚上优化还是比它慢20-30%。
gcc编译参数:
gcc -fomit-frame-pointer -O3 -march=i686 -Waggregate-return -Wcast-align -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wshadow -Wwrite-strings -Wcast-qual -o tail tail.c
- tail.rar (1.8 KB)
- 描述: tail的c和lua实现
- 下载次数: 137
分享到:
相关推荐
标题中的"tail程序(windows)"指的是Windows版本的`tail`命令,它模仿了Unix和Linux环境中的功能,为Windows用户提供了便捷的日志文件查看和跟踪的能力。在Windows中,这个功能通常通过第三方工具或命令行实用程序来...
Lua从一开始就是作为一门方便嵌入(其它应用程序)并可扩展的轻量级脚本语言来设计的,因此她一直遵从着简单、小巧、可移植、快速的原则,官方实现完全采用ANSI C编写,能以C程序库的形式嵌入到宿主程序中。Lua的每个...
Lua 5.1是这本书介绍的版本,这是一个经典的版本,对于Lua的语法和特性提供了详尽的描述。 书中首先介绍了Lua语言的基本概念,如“chunks”、“lexical conventions”、“global variables”以及“stand-alone ...
`tailf.c`和`tailf原始版本.c`这两个文件很可能是`tailf`命令的源代码。通过阅读这些源代码,我们可以了解`tailf`如何实现上述高级功能,这对于学习Linux系统编程和理解I/O多路复用(如`select`或`poll`函数)等底层...
Linux有一个tail命令可以实时输出文本文件内容 而windows却没有类似的命令 这回用这个工具可以在windows里可以使用tail命令...方法:解压缩,把tail.exe放到c:\windows\system32\目录下,就可以在命令行中使用tail命令了
在Windows操作系统中,通常我们习惯于使用图形化界面来管理和查看文件,但对于习惯于Linux环境的用户来说...通过学习和熟练掌握`tail2win`,你可以在Windows环境中更好地进行日志分析、程序调试等工作,提高工作效率。
Tail for Win32 4.2.12.1,Linux下有一个tail程序,可以用来动态显示变化中的日志文件内容,这个是基于windows的版本,本身是来源于SourceForge的开源项目。 但是默认的版本有几个缺陷,因此我修改了以下功能: 1)...
【标题】:“模仿tail的程序”是指开发一个与Unix系统中的`tail`命令类似的应用程序,但不包含 `-f` 追踪文件变化的功能。在Unix和Linux操作系统中,`tail` 命令用于查看文件的末尾部分,通常用于实时监控日志文件的...
本文档旨在详细介绍Lua 5.1虚拟机中的各种指令,帮助开发者更好地理解Lua程序是如何被解释和执行的。 #### Lua指令基础 Lua指令通常由一个操作码和零个或多个操作数组成。操作码定义了指令的基本行为,而操作数则...
总的来说,通过在Windows环境中使用`tail`命令工具,开发者和系统管理员可以更方便地监控和分析程序日志,从而快速定位和解决问题。这个工具的引入使得Windows环境在日志分析方面与Linux环境更加接近,提升了工作...
在进程控制方面,源代码可能包含了信号处理机制,比如对`SIGINT`(Ctrl+C)的处理,以便在用户中断时优雅地退出程序。这通常涉及到`signal()`或`sigaction()`函数的使用。 总的来说,通过研究这个个人编写的`tail`...
在IT行业中,尤其是在系统管理和日志分析领域,`tail`命令是一个非常常用且实用的工具。它允许用户实时查看文件的末尾,特别是在监控日志文件变化时非常有用。Java作为一种广泛使用的编程语言,也可以实现类似`tail`...
1. **监控日志文件**:在开发和调试过程中,如果一个程序将错误信息写入日志文件,可以使用 `tail -f log.txt` 来实时查看错误信息,而无需频繁检查整个日志文件。 2. **配置文件变动**:在某些服务或应用启动时,...
总的来说,Windows Tail是一款实用的工具,尤其对于习惯于Unix/Linux环境的开发者和管理员在Windows平台工作时,能提供很大的便利。通过阅读“yymmiinngg”分享的博文,可以学习如何在Windows环境中利用这款工具,...
TailLog的主要功能在于实时跟踪和展示应用程序产生的日志文件,尤其对于那些依赖于日志输出来诊断问题的服务,如Tomcat、JBoss和MQ等,它的作用更为显著。这些服务在运行过程中,会持续生成大量日志信息,TailLog...
这通常是通过安装一些开源或者商业软件来实现的,例如利用GnuWin32、Cygwin、UnxUtils等项目提供的Windows版本的`tail`命令。这些工具将许多常用的Unix/Linux命令移植到了Windows平台,使得开发者和系统管理员可以在...
- **GNUWin32:** 这是一个包含许多GNU工具的Windows版本集合,其中包括`tail`。你可以从官方网站下载`tail.exe`,将其添加到系统PATH环境变量中,然后在命令提示符下直接使用`tail`。 - **WinTail:** WinTail是...