Python算法题集_检测函数用时和内存占用的模块【自搓】

2024-01-29 09:52

本文主要是介绍Python算法题集_检测函数用时和内存占用的模块【自搓】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

    最近对算法的优化有了兴趣,陆续做了一些算法题

    做着做着,有些问题就浮现出来咯

  1. 网站上测试时用时受服务器负载情况影响,每次都不同

  2. 网站会提示免费会员不能算法提交太快

    既然如此,干脆就手搓一个自用测量函数运行用时、内存占用的代码单元CheckFuncPerf.py

    自己研究算法的时候本地进行测试,也给大家分享出来


    代码单元CheckFuncPerf.py介绍

1. 概述

名称说明备注
模块名称CheckFuncPerf.py,自用时引用为cfp内存数值会波动,建议作为定性参数不作为定量参数
版本号V1.0.0.12024.1.28
下载地址测量函数运行用时、内存占用的代码单元CheckFuncPerf.py以及使用方法CSDN原创资源,有可能要1月29日才能审核通过哈
使用方法import CheckFuncPerf as cfp内存测试有单词模式和增强模式【9次取最大值】
返回参数字典,exec_time为用时*(秒)*,mem_use为内存(KB),result为函数返回值返回信息的函数,msg为返回信息
使用建议建议使用返回信息函数,返回内容多一个信息

2. 测量函数用时getTimeStr返回值为字典,第二个例子为多参数函数例子

import CheckFuncPerf as cfp# 测试函数1
def test1(icount = 10):a = [i for i in range(icount ** 6)]b = [j for j in range(icount ** 7)]return sum([x + y for x, y in zip(a, b)])# 测试函数2
def test2(icount, jcount):a = [i for i in range(icount ** 7)]b = [j for j in range(jcount ** 7)]return sum([x + y for x, y in zip(a, b)])print(cfp.getTimeStr(test1))
# 执行结果
{'exec_time': 0.6363005638122559, 'result': 999999000000, 'msg': '函数 test1 的运行时间为 636.300564 ms'}print(cfp.getTimeStr(test2, 8, 9)['msg'])
# 执行结果
函数 test2 的运行时间为 504.688978 ms

3. 测量函数内存占用getMemoryStrgetMemoryStrExt,返回值为字典;ext版本执行9次取最大值,用时会较长

import CheckFuncPerf as cfp# 测试函数1
def test1(icount = 10):a = [i for i in range(icount ** 6)]b = [j for j in range(icount ** 7)]return sum([x + y for x, y in zip(a, b)])# 测试函数2
def test2(icount, jcount):a = [i for i in range(icount ** 7)]b = [j for j in range(jcount ** 7)]return sum([x + y for x, y in zip(a, b)])print(cfp.getMemoryStr(test2, 8, 9)['msg'])
# 执行结果
函数 test2 的内存使用量为 4.00 KBprint(cfp.getMemoryStrExt(test1, 8)['msg'])
# 执行结果
函数 test1 的内存使用量为 256.00 KB

4. 同时测量函数用时和内存占用getTimeMemoryStrgetTimeMemoryStrExt,返回值为字典;ext版本执行9次取最大值,用时会较长

import CheckFuncPerf as cfp# 测试函数1
def test1(icount = 10):a = [i for i in range(icount ** 6)]b = [j for j in range(icount ** 7)]return sum([x + y for x, y in zip(a, b)])# 测试函数2
def test2(icount, jcount):a = [i for i in range(icount ** 7)]b = [j for j in range(jcount ** 7)]return sum([x + y for x, y in zip(a, b)])print(cfp.getTimeMemoryStr(test1, 8)['msg'])
# 执行结果
函数 test1 的运行时间为 129.58 ms;内存使用量为 256.00 KBprint(cfp.getTimeMemoryStrExt(test2, 8, 9)['msg'])
# 执行结果
函数 test2 的运行时间为 530.02 ms;内存使用量为 8.00 KB

如果大家用起来有什么不方便的,评论、私信给我发消息,尽量抽空改哈

may the odds be ever in your favor ~

这篇关于Python算法题集_检测函数用时和内存占用的模块【自搓】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/656524

相关文章

讯飞webapi语音识别接口调用示例代码(python)

《讯飞webapi语音识别接口调用示例代码(python)》:本文主要介绍如何使用Python3调用讯飞WebAPI语音识别接口,重点解决了在处理语音识别结果时判断是否为最后一帧的问题,通过运行代... 目录前言一、环境二、引入库三、代码实例四、运行结果五、总结前言基于python3 讯飞webAPI语音

基于Python开发PDF转PNG的可视化工具

《基于Python开发PDF转PNG的可视化工具》在数字文档处理领域,PDF到图像格式的转换是常见需求,本文介绍如何利用Python的PyMuPDF库和Tkinter框架开发一个带图形界面的PDF转P... 目录一、引言二、功能特性三、技术架构1. 技术栈组成2. 系统架构javascript设计3.效果图

MySQL中COALESCE函数示例详解

《MySQL中COALESCE函数示例详解》COALESCE是一个功能强大且常用的SQL函数,主要用来处理NULL值和实现灵活的值选择策略,能够使查询逻辑更清晰、简洁,:本文主要介绍MySQL中C... 目录语法示例1. 替换 NULL 值2. 用于字段默认值3. 多列优先级4. 结合聚合函数注意事项总结C

Python如何在Word中生成多种不同类型的图表

《Python如何在Word中生成多种不同类型的图表》Word文档中插入图表不仅能直观呈现数据,还能提升文档的可读性和专业性,本文将介绍如何使用Python在Word文档中创建和自定义各种图表,需要的... 目录在Word中创建柱形图在Word中创建条形图在Word中创建折线图在Word中创建饼图在Word

Python Excel实现自动添加编号

《PythonExcel实现自动添加编号》这篇文章主要为大家详细介绍了如何使用Python在Excel中实现自动添加编号效果,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、背景介绍2、库的安装3、核心代码4、完整代码1、背景介绍简单的说,就是在Excel中有一列h=会有重复

Python FastAPI入门安装使用

《PythonFastAPI入门安装使用》FastAPI是一个现代、快速的PythonWeb框架,用于构建API,它基于Python3.6+的类型提示特性,使得代码更加简洁且易于绶护,这篇文章主要介... 目录第一节:FastAPI入门一、FastAPI框架介绍什么是ASGI服务(WSGI)二、FastAP

Python中Windows和macOS文件路径格式不一致的解决方法

《Python中Windows和macOS文件路径格式不一致的解决方法》在Python中,Windows和macOS的文件路径字符串格式不一致主要体现在路径分隔符上,这种差异可能导致跨平台代码在处理文... 目录方法 1:使用 os.path 模块方法 2:使用 pathlib 模块(推荐)方法 3:统一使

一文教你解决Python不支持中文路径的问题

《一文教你解决Python不支持中文路径的问题》Python是一种广泛使用的高级编程语言,然而在处理包含中文字符的文件路径时,Python有时会表现出一些不友好的行为,下面小编就来为大家介绍一下具体的... 目录问题背景解决方案1. 设置正确的文件编码2. 使用pathlib模块3. 转换路径为Unicod

如何通过Golang的container/list实现LRU缓存算法

《如何通过Golang的container/list实现LRU缓存算法》文章介绍了Go语言中container/list包实现的双向链表,并探讨了如何使用链表实现LRU缓存,LRU缓存通过维护一个双向... 目录力扣:146. LRU 缓存主要结构 List 和 Element常用方法1. 初始化链表2.

Python结合Flask框架构建一个简易的远程控制系统

《Python结合Flask框架构建一个简易的远程控制系统》这篇文章主要为大家详细介绍了如何使用Python与Flask框架构建一个简易的远程控制系统,能够远程执行操作命令(如关机、重启、锁屏等),还... 目录1.概述2.功能使用系统命令执行实时屏幕监控3. BUG修复过程1. Authorization