首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >活动函数的日志执行时间

问活动函数的日志执行时间
EN

Stack Overflow用户
提问于 2022-01-12 17:08:40
回答 2查看 206关注 0票数 0

我有一个具有多个活动功能的持久功能。我需要记录每个活动函数的执行时间。我目前是这样计算的:

代码语言:javascript
复制
using System.Diagnostics;

namespace Hosts
{
    public class ActivityFunctionOne
    {
        private readonly Stopwatch _stopwatch;

        public ActivityFunctionOne()
        {          
            _stopwatch = new Stopwatch();
        }

        [FunctionName("ActivityFunctionOne")]
        public async Task Read([ActivityTrigger])
        {            
            _stopwatch.Start();               
            await fun.ReadAsync();                
            _stopwatch.Stop();
            // log ("completed in {_stopwatch.ElapsedMilliseconds}");      
        }
    }
}
代码语言:javascript
复制
using System.Diagnostics;

namespace Hosts
{
    public class ActivityFunctionTwo
    {
        private readonly Stopwatch _stopwatch;

        public ActivityFunctionTwo()
        {          
            _stopwatch = new Stopwatch();
        }

        [FunctionName("ActivityFunctionTwo")]
        public async Task Write([ActivityTrigger])
        {            
            _stopwatch.Start();               
            await fun.WriteAsync();                
            _stopwatch.Stop();
            // log ("completed in {_stopwatch.ElapsedMilliseconds}");  
        }
    }
}

如您所见,我在每个活动函数中都添加了秒表来记录执行时间。是否有一种方法可以在一个位置实现stopWatch并计算每个活动函数的执行时间而不重复?另外,如果稍后添加新的活动函数,是否也可以不添加这些行来计算这些活动函数的执行时间?

EN

回答 2

Stack Overflow用户

发布于 2022-01-25 12:06:57

目前这是不可能的。使用每个活动函数记录执行时间的单个秒表进程。

无论如何,我们需要添加用于Stopwatch.Start()的 start 秒表,以了解特定任务何时可以启动。Stopwatch.Stop()用于stop秒表,以了解可以完成特定任务的确切时间,因此我们需要在开始和结束特定任务之前添加这两行。

代码语言:javascript
复制
     Stopwatch _stopwatch = new Stopwatch();
    _stopwatch.Start();               
    // your task to know the execution time.                
    _stopwatch.Stop();

参考这里

票数 0
EN

Stack Overflow用户

发布于 2022-01-27 14:33:52

我不知道在每个活动函数中不使用stopwatch.start()和stopwatch.stop()用ilogger实例记录执行的干净方法。然而,执行时间实际上已经登录到所有活动的appinsights中,对于大多数类型的性能调试来说,这可能是足够的信息。为函数获取它的一个简单查询将是。

代码语言:javascript
复制
traces
| where customDimensions['prop__functionName']=='SomeActivityFunctionName' 
| where customDimensions['EventName'] == 'FunctionCompleted'
| project timestamp, customDimensions['prop__executionDuration']
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70685601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档