有什么方法可以获取 Cocoa for OS X 中应用程序的运行时间吗?

2024-03-07

我想在我的应用程序中与时间一起操作。我首先考虑的是系统的uptime。由于这看起来很难实现,我很好奇是否有一种简单有效的方法来获取我的应用程序的运行时间?

更好的时间以毫秒或时间间隔为单位。


获得应用程序运行时间近似值的最简单方法是在应用程序委托方法调用时存储 NSDateapplicationDidFinishLaunching:每当您需要进程运行时间时,都会调用并从当前时间中减去该日期。

static NSTimeInterval startTime;
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    startTime = [NSDate timeIntervalSinceReferenceDate];
}

- (IBAction)printRunningTime:(id)sender
{
    NSLog(@"Approximate running interval:%f", [NSDate timeIntervalSinceReferenceDate] - startTime);
}

如果您需要更准确的 PID 运行间隔,您可以使用sysctl.
这将为您提供操作系统认为您的进程以 UNIX 时间“运行”的时间点的准确时间戳。 (如果您想要本地时区的时间戳,您可以使用NSDateFormatter如下)。

#include <sys/sysctl.h>
#include <sys/types.h>

- (IBAction)printRunningTime:(id)sender
{
    pid_t pid = [[NSProcessInfo processInfo] processIdentifier];
    int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, pid };
    struct kinfo_proc proc;
    size_t size = sizeof(proc);
    sysctl(mib, 4, &proc, &size, NULL, 0);

    NSDate* startTime = [NSDate dateWithTimeIntervalSince1970:proc.kp_proc.p_starttime.tv_sec];
    NSLog(@"Process start time for PID:%d in UNIX time %@", pid, startTime);

    NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateStyle:NSDateFormatterMediumStyle];
    [dateFormatter setTimeStyle:NSDateFormatterLongStyle];
    [dateFormatter setLocale:[NSLocale currentLocale]];
    NSLog(@"Process start time for PID:%d in local time %@", pid, [dateFormatter stringFromDate:startTime]);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有什么方法可以获取 Cocoa for OS X 中应用程序的运行时间吗? 的相关文章

随机推荐

  • 如何使用 Excel VBA 将项目添加到 Sharepoint 列表?

    我有一个基于 Excel 的应用程序 它收集一些用户输入 并根据该用户输入进行一些计算 应用程序本身不存储任何用户输入或计算 目前 每当用户运行该应用程序时 它都会将数据发送到 Access 数据库并向 Access 表中插入一行xlTab
  • 每行读取行的最快方法是什么

    我有一个巨大的字符串文件 所有行都应添加到我的代码中的列表中 最快的方法是什么 我发现this https stackoverflow com questions 9093888 fastest way of reading relativ
  • C++ 流混淆:istreambuf_iterator 与 istream_iterator?

    有什么区别istreambuf iterator and istream iterator 一般来说 流和streambufs之间有什么区别 我真的找不到任何明确的解释 所以决定在这里询问 IOstreams 使用streambufs 作为
  • 使用 SQL 从 XML 中删除具有特定值的节点

    我正在尝试解析一段 XML 并删除包含某些值的节点 如果值准确 我知道如何删除它们 但我想使用 包含 之类的东西 这可以准确删除 update XML set data modify delete Message text customer
  • 如何返回异步 IEnumerable

    我有以下方法 public async IEnumerable
  • 如果java spring cors策略被阻止,如何访问后端? [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我使用 Java spring 作为后端 当前端到达我的端点时 他会收到错误 从源 http localhost 300
  • 如何扁平化查询结果?

    用一个例子让大家很容易理解 https developer github com v4 explorer https developer github com v4 explorer 查询观众信息 query viewer follower
  • 材质 UI 选择设置值始终超出范围

    我有一个 MaterialUI Select 代码 并且我正在动态处理 value 参数 我的问题是 当我设置任何值时 它总是说它超出范围 甚至在有效值中显示该值 SelectInput js 291 Material UI you hav
  • 投放到某个事件(而不是日历) - 如何识别事件?

    我已经成功实现了将 jquery ui 元素拖动到我的 fullCalendar 上 问题是 我想要放置的不是日历本身 而是日历上显示的特定事件 以便将放置的项目添加到该事件中 缺少的部分是如何识别当我放下鼠标时发生的事件 drop fun
  • 如何将控制台输出写入文本文件

    我是编程新手 我在网页上搜索了这个问题的答案 并尝试了很多可能性 但没有成功 我目前已成功将电位计连接到我的树莓派并在控制台上获取值 但我不知道如何将这些值保存到文本文件中 这是我的代码 usr bin python import spid
  • 在 makefile 中设置环境变量

    我有一个像这样的 makefile setup setenv var1 var1 setenv var2 var2 task1 setup source task1 csh task2 setup source task2 csh 我使用以
  • 在 Postgres 中查询失败但在 H2 中工作(Postgres 模式)

    我经常发现自己想要为数据库查询编写自动化测试 我当前的用例是 Spring MVC Web 应用程序和 Postgres 数据库 据我所知 我有两个选择 建立一个实际的 Postgres 实例并使用测试数据集对其进行初始化 利用内存数据库
  • 使用自动布局时如何制作从一个 UIView 到另一个 UIView 的翻转动画?

    我总是使用以下代码在一个视图和另一个视图之间制作翻转动画 UIView transitionFromView firstView toView secondView duration 0 6 options UIViewAnimationO
  • + 顶部边框是否由任何标准(HTML 或 CSS)定义的“擦除”行为?

    早在 IE6 时代 我曾经通过创建一个 HTML 来模拟 Windows 风格的分组框 参见示例 div有边框 并定位span将文本放在边框上并使用纯色背景来 擦除 框边框 将组文本放置在框的顶部或底部很简单 这种技术效果很好 除非背景不是
  • 合并实体框架中的迁移条目

    我有一个 Entity Framework 6 CF 项目 其中已经进行了一些迁移 该模型现已稳定 无需保留已存在的迁移历史记录 有没有办法重置模型并将所有迁移命令合并到初始迁移中 例如 第一次迁移添加一列 而第二次迁移添加唯一的非聚集索引
  • 模拟与道具 - 使用 Jest 和 Enzyme 进行更改事件

    我正在尝试对多个 onChange 事件运行测试 现在测试通过了以下代码 但不影响其覆盖率 意味着不正确 wrapper find Datasubjects props onChange City target value test 但如果
  • 计算iphone中两点之间的距离

    我正在创建一个应用程序 要求用户输入两个地方 邮政编码 我的应用程序将计算这两点之间的行驶距离并输出结果 用户可以选择添加航路点 我想我必须使用谷歌地图 API 并获取包含结果的 xml 文件 然后解析该 xml 文件 任何人都可以帮助我
  • swf上传302错误

    所以我有这个 javascript 代码用于将 swfuploader 加载到页面上 http code google com p swfupload http code google com p swfupload swfuPubThum
  • 无法使用自制 perl 5.32 在 M1 Mac 上安装 XML::Parser

    我的新的基于 M1 的 Mac 具有 Apple 的内置 Perl 版本 v5 28 2 我使用自制程序安装了最新的 perl 5 32 0 并配置了 local lib 选项 以便 cpan 模块安装在 perl5 中 所有这些在很大程度
  • 有什么方法可以获取 Cocoa for OS X 中应用程序的运行时间吗?

    我想在我的应用程序中与时间一起操作 我首先考虑的是系统的uptime 由于这看起来很难实现 我很好奇是否有一种简单有效的方法来获取我的应用程序的运行时间 更好的时间以毫秒或时间间隔为单位 获得应用程序运行时间近似值的最简单方法是在应用程序委