当前位置:首页>python>Python+CAE深度整合:Nastran OP2文件后处理不再依赖商业软件

Python+CAE深度整合:Nastran OP2文件后处理不再依赖商业软件

  • 2026-06-30 05:27:57
Python+CAE深度整合:Nastran OP2文件后处理不再依赖商业软件

在航空航天、汽车制造等工程仿真领域,MSC Nastran作为行业标准的有限元分析软件,其OP2结果文件承载着大量关键数据。然而,传统工作流中,工程师往往被困在昂贵商业后处理软件的高额许可费和封闭生态中。本文介绍如何利用Python开源工具链,摆脱商业软件依赖,实现Nastran OP2文件的高效后处理。

一、行业痛点:商业软件依赖的技术壁垒

传统工程仿真工作流严重依赖商业软件进行文件解析和结果提取,这种模式带来了一系列问题:

  • 数据孤岛效应:有限元数据被锁定在专用软件中,无法与Python数据科学工具链无缝集成
  • 自动化程度低:批量处理、参数化分析和优化循环需要大量手动操作
  • 成本高昂:商业软件许可费用限制了中小型团队的技术能力
  • 扩展性受限:自定义分析和后处理功能难以实现

二、核心方案:pyNastran开源工具链

pyNastran是基于Python的Nastran文件格式接口工具,支持BDF(几何模型)、OP2(二进制结果)、OP4(二进制矩阵)等文件格式的读写操作。通过它,工程师可以在Python生态系统中直接访问和处理有限元数据。

2.1 安装与基础配置

pip install pyNastran

支持Python 3.9+,与NumPy、Pandas、Matplotlib等科学计算库无缝集成。

三、OP2 vs F06:为什么选择二进制格式

很多工程师习惯使用F06文本文件,但OP2二进制格式具有显著优势:

对比项F06文本格式OP2二进制格式优势
解析难度格式复杂,页码标题干扰结构化存储,规律清晰编程友好
读取速度逐行文本扫描内存映射批量读取10-50倍提升
内存效率字符串拼接+类型转换直接二进制访问减少80%内存
数据精度文本舍入丢失完整float32/float64精度更高
复杂结果超单元/优化结果解析困难自动识别记录类型支持SOL 200等
实用建议:在Nastran输入文件中设置POST=-2POSTEXT=YES,即可输出OP2格式结果文件。

四、实战代码:OP2文件读取与分析

4.1 基础读取

import os
import pyNastran
from pyNastran.op2.op2 import read_op2

# 获取示例文件路径
pkg_path = pyNastran.__path__[0]
op2_filename = os.path.join(pkg_path, '...', 'models', 'solid_bending', 'solid_bending.op2')

# 读取OP2文件
op2 = read_op2(op2_filename, debug=False)

# 查看文件包含的结果类型
print(op2.get_op2_stats())

get_op2_stats()输出示例:

op2.displacements[1]   type=RealDisplacementArray nnodes=72
op2.ctetra_stress[1] type=RealSolidStressArray nelements=186

4.2 提取位移结果

# 提取位移数据
displacements = op2.displacements[1]
print(f"位移结果形状: {displacements.data.shape}")
print(f"时间步数/模态数: {displacements.data.shape[0]}")
print(f"节点数: {displacements.data.shape[1]}")
print(f"自由度: {displacements.data.shape[2]}") # [t1,t2,t3,r1,r2,r3]

# 获取最大值
max_disp = abs(displacements.data).max()
print(f"最大位移: {max_disp:.4f}")

4.3 提取应力结果

# 提取四边形单元应力
stress = op2.cquad4_stress[1]
print(f"单元应力数据形状: {stress.data.shape}")
print(f"数据格式: [oxx, oyy, ozz, txy, tyz, txz, o1, o2, o3, von_mises]")

# 获取von Mises应力
von_mises = stress.data[..., 9] # 第10列为von Mises
max_stress = von_mises.max()
print(f"最大von Mises应力: {max_stress:.2f}")

五、深度集成:Pandas DataFrame与可视化

5.1 转换为DataFrame进行数据分析

import pandas as pd
from pyNastran.op2.op2 import read_op2

# 启用DataFrame构建
op2 = read_op2(op2_filename, build_dataframe=True, debug=False)

# 转换为DataFrame
disp_df = op2.displacements[1].build_dataframe()
stress_df = op2.cquad4_stress[1].build_dataframe()

print("位移DataFrame:")
print(disp_df.head())
print("\n应力DataFrame:")
print(stress_df.head())

DataFrame格式输出示例:

ElementIDNodeIDfiber_distoxxoyytxyvon_mises
6CEN0.125.85e-079.73e-06-1.36e-079.46e-06
61-0.124.71e-079.44e-06-1.61e-079.21e-06

5.2 统计分析

# 统计分析
print(f"最大主应力: {stress_df['oxx'].max():.4f}")
print(f"平均von Mises: {stress_df['von_mises'].mean():.4f}")
print(f"应力标准差: {stress_df['von_mises'].std():.4f}")

# 找出危险单元
critical_elements = stress_df[stress_df['von_mises'] > stress_df['von_mises'].quantile(0.95)]
print(f"\n高应力单元(前5%): {len(critical_elements)}个")

5.3 Matplotlib可视化

import matplotlib.pyplot as plt
import numpy as np

# 创建后处理可视化
fig, axes = plt.subplots(2, 2, figsize=(12, 10))

# 1. 位移分布直方图
axes[0,0].hist(disp_df['t1'].dropna(), bins=50, color='steelblue', alpha=0.7)
axes[0,0].set_title('X方向位移分布')
axes[0,0].set_xlabel('位移 (m)')
axes[0,0].set_ylabel('频数')

# 2. von Mises应力云图(散点)
axes[0,1].scatter(range(len(stress_df)), stress_df['von_mises'],
c=stress_df['von_mises'], cmap='hot', s=10)
axes[0,1].set_title('von Mises应力分布')
axes[0,1].set_xlabel('单元索引')
axes[0,1].set_ylabel('应力 (Pa)')

# 3. 主应力分量对比
axes[1,0].boxplot([stress_df['oxx'].dropna(), stress_df['oyy'].dropna()],
labels=['σxx', 'σyy'])
axes[1,0].set_title('主应力分量对比')
axes[1,0].set_ylabel('应力 (Pa)')

# 4. 模态频率分布(如果存在)
if hasattr(op2, 'eigenvalues'):
freqs = op2.eigenvalues[1].data[:, 0]
axes[1,1].bar(range(len(freqs)), freqs, color='forestgreen')
axes[1,1].set_title('固有频率分布')
axes[1,1].set_xlabel('模态阶次')
axes[1,1].set_ylabel('频率 (Hz)')

plt.tight_layout()
plt.savefig('postprocessing_results.png', dpi=150)
plt.show()

六、大模型处理:HDF5内存优化

对于包含数百万自由度的大型OP2文件,直接加载可能消耗大量内存。pyNastran支持将OP2保存为HDF5格式,实现内存优化:

from pyNastran.op2.op2 import OP2

# 启用HDF5模式读取,减少内存占用
op2_model = OP2()
op2_model.load_as_h5 = True
op2_model.read_op2(large_op2_filename)

# 数据以流式方式访问,不一次性加载到内存
数据规模标准模式内存HDF5模式内存节省比例
100万自由度~2 GB~400 MB80%
500万自由度~10 GB~2 GB80%
1000万自由度~20 GB~4 GB80%

七、批量自动化工作流

结合Python的批处理能力,可以实现多文件批量分析:

import os
import pandas as pd
from pyNastran.op2.op2 import read_op2
from concurrent.futures import ProcessPoolExecutor

def analyze_single_case(op2_file):
"""分析单个OP2文件"""
try:
op2 = read_op2(op2_file, build_dataframe=True, debug=False)
result = {
'file': os.path.basename(op2_file),
'max_displacement': 0,
'max_von_mises': 0,
}

# 提取关键指标
if hasattr(op2, 'displacements'):
result['max_displacement'] = abs(op2.displacements[1].data).max()
if hasattr(op2, 'cquad4_stress'):
result['max_von_mises'] = op2.cquad4_stress[1].data[..., 9].max()

return result
except Exception as e:
return {'file': os.path.basename(op2_file), 'error': str(e)}

def batch_analyze(op2_folder, max_workers=4):
"""批量分析文件夹中的所有OP2文件"""
op2_files = [os.path.join(op2_folder, f) for f in os.listdir(op2_folder)
if f.endswith('.op2')]

with ProcessPoolExecutor(max_workers=max_workers) as executor:
results = list(executor.map(analyze_single_case, op2_files))

# 生成汇总报告
summary_df = pd.DataFrame(results)
summary_df.to_csv('batch_analysis_summary.csv', index=False)
return summary_df

# 执行批量分析
results = batch_analyze('/path/to/op2/folder')
print(results)

八、与机器学习集成

OP2后处理结果可以无缝对接机器学习框架:

import numpy as np
import pandas as pd
from sklearn.ensemble import RandomForestRegressor
from sklearn.model_selection import train_test_split

# 从多个分析结果构建训练数据集
def extract_features(op2_file):
"""提取特征用于机器学习"""
op2 = read_op2(op2_file)
features = {}

if hasattr(op2, 'displacements'):
disp_data = op2.displacements[1].data
features['mean_disp'] = np.mean(disp_data)
features['max_disp'] = np.max(disp_data)
features['disp_std'] = np.std(disp_data)

if hasattr(op2, 'cquad4_stress'):
stress_data = op2.cquad4_stress[1].data[..., 9]
features['max_stress'] = np.max(stress_data)
features['stress_percentile_95'] = np.percentile(stress_data, 95)

return features

# 构建数据集并训练模型
X = pd.DataFrame([extract_features(f) for f in training_files])
y = pd.DataFrame([target_metric(f) for f in training_files])

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
model = RandomForestRegressor(n_estimators=100)
model.fit(X_train, y_train)

# 预测新设计性能
predicted = model.predict([extract_features(new_op2_file)])
应用场景:结构优化代理模型、疲劳寿命预测、设计空间探索等。

九、常见问题与解决方案

9.1 OP2文件读取报错

问题Is Not a Valid OP2或解析结果为空

原因与解决方案

  • Nastran未生成OP2:检查输入文件是否设置了POST=-2
  • Nastran版本不兼容:确保与使用的Nastran版本匹配(MSC/NX/NEi)
  • 文件损坏:尝试重新运行Nastran

9.2 内存不足

问题:大型OP2文件读取时内存溢出

解决方案

# 使用HDF5流式加载
op2 = OP2()
op2.load_as_h5 = True
op2.read_op2(large_file)

# 或使用子集读取
op2.read_op2(file, include_results=['displacements', 'cquad4_stress'])

9.3 结果类型未知

提示:使用op2.get_op2_stats()查看文件包含的所有结果类型,然后根据需要选择性读取。

十、总结

通过pyNastran开源工具链,工程师可以完全摆脱商业后处理软件的束缚,实现:

  • OP2文件的高速读取(比F06快10-50倍)
  • 与Pandas/NumPy/Matplotlib无缝集成
  • 批量自动化处理大型项目数据
  • 与机器学习框架结合的智能分析
  • 显著降低软件许可成本
推荐工具栈:pyNastran + Pandas + NumPy + Matplotlib + (可选)xarray/SciPy

无论你是需要快速提取关键指标,还是构建复杂的后处理自动化流程,Python开源生态都能提供足够的灵活性和扩展性。下次做Nastran后处理时,不妨先试试Python。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 10:51:20 HTTP/2.0 GET : https://f.mffb.com.cn/a/500704.html
  2. 运行时间 : 0.104481s [ 吞吐率:9.57req/s ] 内存消耗:4,685.93kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=d593ead1f4f73380acc54026adc04482
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000806s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000833s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000307s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000466s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000762s ]
  6. SELECT * FROM `set` [ RunTime:0.000196s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000498s ]
  8. SELECT * FROM `article` WHERE `id` = 500704 LIMIT 1 [ RunTime:0.000509s ]
  9. UPDATE `article` SET `lasttime` = 1783047080 WHERE `id` = 500704 [ RunTime:0.024877s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000344s ]
  11. SELECT * FROM `article` WHERE `id` < 500704 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000485s ]
  12. SELECT * FROM `article` WHERE `id` > 500704 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000378s ]
  13. SELECT * FROM `article` WHERE `id` < 500704 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000589s ]
  14. SELECT * FROM `article` WHERE `id` < 500704 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000912s ]
  15. SELECT * FROM `article` WHERE `id` < 500704 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000897s ]
0.106084s