Skip to content

有一个日志文件,包含了多个会话的方法调用信息,日志格式如下: seq_number,session_id,method,timestamp,headers,payload,extra_data 请编写一个程序,找出出现频率最高的方法调用序列模式,并输出: ● 一共有多少个会话 ● 有多少个会话中出现了该模式 ● 该模式在所有会话中出现的次数 其中,方法调用序列模式包含的方法个数可以调整。

Notifications You must be signed in to change notification settings

GitHubMind/testLogAnalysis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

testLogAnalysis

有一个日志文件,包含了多个会话的方法调用信息,日志格式如下: seq_number,session_id,method,timestamp,headers,payload,extra_data 请编写一个程序,找出出现频率最高的方法调用序列模式,并输出:

   ● 一共有多少个会话 
   ● 有多少个会话中出现了该模式 
   ● 该模式在所有会话中出现的次数 其中,方法调用序列模式包含的方法个数可以调整。

分析:

  • 可以通过map来分割session_id,方法
  • 然后分别读去文件来做一个反序列化,这里如果但但只是方法的话可以自己做分割,并不需要完全序列化【优化点】但是正常来说没必要。(读文档可以采用chanel来传送,预判考官会提出steam状态的日【感觉正常场景就是这样子用的】
  • 分析需求 "有多少个会话中出现了该模式","该模式在所有会话中出现的次数",遍历一下全部的时候分别 去重 session_并且加上

可优化的地方

  • 分析是暴力O(n*Step(设置匹配的长度)),能不能用dp去优化(想看其他题目,先实现)
  • 因为是使用两个channel去进行生产和消费,很轻易的就能改成更多消费者和更多生产者更多携程
  • 文件的结构可以优化,可以封装一层。

About

有一个日志文件,包含了多个会话的方法调用信息,日志格式如下: seq_number,session_id,method,timestamp,headers,payload,extra_data 请编写一个程序,找出出现频率最高的方法调用序列模式,并输出: ● 一共有多少个会话 ● 有多少个会话中出现了该模式 ● 该模式在所有会话中出现的次数 其中,方法调用序列模式包含的方法个数可以调整。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages