设为首页收藏本站
  • 官方微信
    lmkj_wx 微信公众号 添加方式:
    1:扫描左侧二维码
  • 手机访问
    lmkj_sj
  •  找回密码
     立即注册

    QQ登录

    只需一步,快速开始

    查看: 23|回复: 0

    怎样利用Excel或Python对日志文件进行数据分析

    [复制链接]
    avatar
    • 打卡等级:魔龙套勇士
    • 打卡总天数:146
    • 打卡月天数:8
    • 打卡总奖励:16336
    • 最近打卡:2025-09-08 00:19:00

    7381

    主题

    170

    回帖

    8967

    积分

    管理员

    本站站长

    积分
    8967
    online_admin 发表于 6 天前 | 显示全部楼层 |阅读模式
    在传奇游戏脚本日志分析中,Excel 和 Python 是两种常用工具:Excel 适合快速处理中小规模日志(万级行数),操作直观;Python 适合大规模日志(十万级以上)和自动化分析。以下分别介绍具体实现方法,结合传奇日志格式(如 GEE 引擎的ScriptLog.txt)展开:
    一、使用 Excel 分析日志文件(适合新手 / 小规模日志)
    1. 步骤 1:导入日志并拆分字段
    传奇日志通常为单行文本格式(如2025-09-02 10:00:00 [QuestDiary/活动.txt] @TIMER 1 执行耗时: 5ms 次数: 60/秒),需先拆分为结构化字段(时间、脚本路径、触发事件、耗时、频次)。

    操作:

    用 Excel 打开日志文件(文件→打开→选择日志.txt),弹出 “文本导入向导”:
    步骤 1:选择 “分隔符”(如空格、中括号)。
    步骤 2:勾选分隔符([、]、空格、:),将日志拆分为列(示例拆分后列结构如下):

    列 1(时间)        列 2(脚本路径)        列 3(触发事件)        列 4(耗时)        列 5(频次)
    2025-09-02 10:00:00        QuestDiary / 活动.txt        @TIMER 1        5ms        60 / 秒
    2025-09-02 10:00:01        QuestDiary / 移动检测.txt        @MOVE        3ms        150 / 秒

    清洗数据:删除无用列(如分隔符产生的空列),将 “耗时” 列的ms去除(替换为空),“频次” 列提取数字(如60/秒→60),转为数值型。
    2. 步骤 2:关键指标统计(高频 / 高耗时分析)
    核心目标:找到 “执行频次高”“单次耗时长”“总耗时占比大” 的脚本 / 命令。

    高频脚本统计:
    选中 “脚本路径” 和 “频次” 列,插入 “数据透视表”:
    行:脚本路径
    值:频次(设置为 “平均值” 或 “求和”)
    排序后可直观看到哪些脚本执行最频繁(如移动检测.txt平均 150 次 / 秒)。
    高耗时命令统计:
    新增 “总耗时 / 秒” 列(公式:=耗时×频次,即单次耗时 × 每秒执行次数)。
    数据透视表按 “脚本路径” 汇总 “总耗时 / 秒”,排序后 Top10 即为资源占用最高的脚本。
    耗时命令类型分析:
    筛选 “触发事件” 列(如包含MAPMONCOUNT、GETSTRVALUE等命令),统计这些命令的平均耗时和执行频次,定位低效命令。
    3. 步骤 3:可视化展示(快速识别瓶颈)
    插入 “簇状柱形图”:以 “脚本路径” 为 X 轴,“总耗时 / 秒” 为 Y 轴,直观展示各脚本的资源占用比例。
    插入 “散点图”:X 轴为 “频次”,Y 轴为 “单次耗时”,点的大小为 “总耗时”,可快速发现 “高频 + 高耗时” 的脚本(右上角的大点)。
    二、使用 Python 分析日志文件(适合大规模 / 自动化分析)
    当日志量超过 10 万行时,Excel 会卡顿,Python 的pandas库可高效处理,结合正则表达式解析日志,实现自动化统计和可视化。
    1. 步骤 1:安装依赖库
    bash
    pip install pandas matplotlib  # pandas用于数据处理,matplotlib用于绘图
    2. 步骤 2:解析日志文件(以 GEE 引擎为例)
    用正则表达式提取日志中的关键字段(时间、脚本路径、触发事件、耗时、频次),转为 DataFrame 结构化数据。
    4. 步骤 4:高级分析(时间趋势 / 异常检测)
    时间趋势分析:按分钟 / 小时统计总耗时变化,识别高峰期(如活动开启时的资源波动):
    python
    运行
    # 转换时间列为datetime类型
    log_df["time"] = pd.to_datetime(log_df["time"])
    # 按小时分组统计总耗时
    hourly_trend = log_df.set_index("time").resample("H")["total_cost_per_sec"].sum()
    hourly_trend.plot(figsize=(12, 4), title="每小时总耗时趋势")
    plt.show()

    异常检测:筛选单次耗时 > 50ms 的命令(正常命令通常 < 10ms),定位异常脚本:
    python
    运行
    abnormal_commands = log_df[log_df["cost_ms"] > 50]
    print("异常高耗时命令:")
    print(abnormal_commands[["script_path", "event", "cost_ms"]])


    三、Excel 与 Python 的适用场景对比
    工具        优势        劣势        适用场景
    Excel        操作直观,无需编程,适合快速分析        处理百万级日志卡顿,自动化能力弱        日志量 < 10 万行,临时分析,新手使用
    Python        处理大规模日志高效,可自动化 / 定时分析        需要基础编程知识,上手成本较高        日志量 > 10 万行,定期分析,复杂统计
    总结
    两种工具的核心分析逻辑一致:提取结构化字段→统计高频 / 高耗时指标→可视化定位瓶颈。对于传奇脚本优化,建议优先通过 Excel 快速定位明显问题(如 Top10 高耗时脚本),若日志量大或需定期分析,再用 Python 实现自动化流程。分析结果需结合游戏场景验证(如活动期间的特殊波动),最终聚焦 “高频 + 高耗时” 的脚本或命令进行优化。


    您需要登录后才可以回帖 登录 | 立即注册 qq_login

    本版积分规则

    QQArchiver 手机版 小黑屋 39传奇素材网 ( 蜀ICP备2022016510号-3 )

    快速回复 快速发帖 返回顶部 返回列表