以下是其中一项交易的详细信息(对于大多数交易,观察结果是相同的)。下面的屏幕快照是在Application Insights的“性能选项”下找到的“端到端交易详细信息”。
在下面的时间轴和遥测屏幕截图中标记的步骤1和步骤2之间,交易的总持续时间约为29.4秒,而花费的时间约为26秒。
遥测
有人可以帮助我了解第1步和第2步之间的差距以及如何减少这一差距以提高性能。
您也可以在Telemetery屏幕截图中看到,也打印了MessagesController.cs中提到的自定义跟踪消息(以红色突出显示)
[ResponseType(typeof(void))]
public virtual async Task<HttpResponseMessage> Post([FromBody] Activity activity)
{
var telemetry = new Microsoft.ApplicationInsights.TelemetryClient();
telemetry.TrackTrace("MessagesController POST",
Microsoft.ApplicationInsights.DataContracts.SeverityLevel.Warning,
new Dictionary<string,string> { {"Activity Id", activity.Id} });
// check if activity is of type message
if (activity != null && activity.GetActivityType() == ActivityTypes.Message)
{
telemetry.TrackTrace("MessagesController Type:Message",
Microsoft.ApplicationInsights.DataContracts.SeverityLevel.Warning,
new Dictionary<string,string> { {"Activity Id", activity.Id} });
//var reply = activity.CreateReply(String.Empty);
//reply.Type = ActivityTypes.Typing;
//await context.SendResponse(reply);
await Conversation.SendAsync(activity, () => new EchoDialog());
是在执行此行之后-等待Conversation.SendAsync(activity,()=> new EchoDialog()); ,它将消息放入某个队列中,然后由一段时间后返回EchoDialog?
谢谢!
答案 0 :(得分:0)
这是由于我创建的加载脚本。加载脚本正在为多个用户创建相同的对话ID,因此检索对话框记录需要花费时间。