Reinhard

Reinhard

0个粉丝

3

问答

0

专栏

0

资料

Reinhard  发布于  2021-03-10 10:34:15
采纳率 34%
3个问答
1655

U盘写入速度不稳定可能是什么原因

 
请问我挂载一个固态U盘后,使用海思的拍照例程,将照片存入U盘,同一个程序,照片大小都是10M左右,但是有时候启动程序写入一张照片只需要50ms,有时候却需要150ms左右,是什么原因呢?(每启动一次程序,写入速度是基本稳定的。就是多次启动程序,会出现照片写入速度不一样)
我的保存照片的代码,把fflush(pFd)注掉了,如下:
HI_S32 SAMPLE_COMM_VENC_SaveStream(FILE* pFd, VENC_STREAM_S* pstStream)
{
    HI_S32 i;
    gettimeofday(&start, NULL);
    for (i = 0; i < pstStream->u32PackCount; i++)
    {
        fwrite(pstStream->pstPack[i].pu8Addr + pstStream->pstPack[i].u32Offset,
               pstStream->pstPack[i].u32Len - pstStream->pstPack[i].u32Offset, 1, pFd);
        // fflush(pFd);

    }
    gettimeofday(&end, NULL);
    timer = 1000000 * (end.tv_sec - start.tv_sec) + end.tv_usec - start.tv_usec;
    printf("SnapCnt = %d, timer = %ld us\n", SnapCnt, timer);
    SnapCnt++;

    return HI_SUCCESS;
}
我来回答
回答2个
时间排序
认可量排序

david

11个粉丝

36

问答

24

专栏

58

资料

david 2021-03-11 15:56:29
认可0

这个是IO操作,操作系统还有调度时间。不可能每次完成一个IO操作都是相同时间。
或者提高这个进程的优先级,这样可以让每次操作时间接近,但是还是没办法完全一样

Reinhard

0个粉丝

3

问答

0

专栏

0

资料

Reinhard 2021-03-11 18:35:10
认可0

这个是IO操作,操作系统还有调度时间。不可能每次完成一个IO操作都是相同时间。
或者提高这个进程的优先级,这样可以让每次操作时间接近,但是还是没办法完全一样

您好,我有考虑过这方面。但这个似乎不能解释的是:同一个程序,我第一次启动,连续抓拍100张照片,每张照片的存储时间都维持在150ms左右,在这100张中,150ms附近波动几十毫秒可以解释为系统调度原因。但是,我关机后重启,再次运行同一个程序,连续抓拍100张,此时,每张照片的存储时间可能维持在50ms附近。这个我就没想太明白。而且,重启程序10多次,照片存储时间要么维持在150ms左右,要么维持在50ms左右,没有出现别的特殊数据。

或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
相关问答
无更多相似问答 去提问
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区