相关疑难解决方法(0)

查找嵌入式Linux系统中的延迟问题(停顿)

我有一个在Atmel AT91SAM9260EK板上运行的嵌入式Linux系统,我有两个进程以实时优先级运行.管理器进程使用POSIX消息队列定期"ping"工作进程,以检查工作进程的运行状况.通常往返ping大约需要1ms,但偶尔需要更长时间 - 大约800ms.没有其他进程以更高的优先级运行.

看来停顿可能与日志记录(syslog)有关.如果我停止记录问题似乎消失了.但是,如果日志文件位于JFFS2或NFS上,则没有任何区别.没有其他进程写入"磁盘" - 只是syslog.

我有哪些工具可以帮助我找出这些摊位发生的原因?我知道等待时间并将使用它.还有其他一些可能更有用的工具吗?

一些细节:

  • 内核版本:2.6.32.8
  • libc(syslog函数):uClibc 0.9.30.1
  • syslog:busybox 1.15.2
  • 没有配置交换空间[在编辑中添加]
  • 根文件系统在tmpfs上(从initramfs加载)[在编辑中添加]

linux embedded latency

9
推荐指数
1
解决办法
1015
查看次数

以最有效的方式逐行读取*平台特定*

我正在寻找一种最有效的方式来阅读文本文件.

考虑到所有可能的优势,例如:

代码将是平台特定的Windows操作系统

并且我正在为当前的CPU等编写一个特定的事实.

*不介意它不是多平台.

只是简单的性能问题

我怎么能以最快的方式编码,将文本文件的每一行读入结构?

说结构是:

typdef struct _FileL{
 uint lidx;
 char* lncontent;
} FileL;
Run Code Online (Sandbox Code Playgroud)

我想的是:

传递FileL上面的动态数组和文件的路径什么是最有效的方式来填充和返回给定文件的行集合?

getFileLines(char* fullPath, FileL** fileLines){
    uint linesCount = 0;// total lines
    uint curLnIndex = 0;// lines counter

    FILE* srcFL; // will hold the source file using passed fullPath

    // now read file into memory 
    //that is the only way i could think of 
    //to be able to assign lineCount used to calculate the array length
    //and also the fastest way …
Run Code Online (Sandbox Code Playgroud)

c algorithm performance file

7
推荐指数
1
解决办法
873
查看次数

标签 统计

algorithm ×1

c ×1

embedded ×1

file ×1

latency ×1

linux ×1

performance ×1