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 ~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/653806.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java 设计模式】行为型之模版方法模式

文章目录 1. 定义2. 应用场景3. 代码实现结语 模板方法模式(Template Method Pattern)是一种行为型设计模式,用于定义算法的框架,并将一些步骤的实现延迟到子类。模板方法模式通过定义一个算法骨架,将具体步骤的实现推…

Linux实验记录:使用LVM(逻辑卷管理器)

前言: 本文是一篇关于Linux系统初学者的实验记录。 参考书籍:《Linux就该这么学》 实验环境: VmwareWorkStation 17——虚拟机软件 RedHatEnterpriseLinux[RHEL]8——红帽操作系统 备注: 硬盘分好区或者部署为RAID磁盘阵列…

Python根据Excel表进行文件重命名

一、问题背景 在日常办公过程中,批量重命名是经常使用的操作。之前我们已经进行了初步探索,主要是通过批处理文件、renamer软件或者Python中的pathlib等模块对当前目录下的文件进行批量重命名。 而今天我们要使用的是PythonExcel的方法对指定目录下的文…

MySQL:三大日志(binlog、redolog、undolog)

再了解三个日志前我们先了解一下MySQL的两层架构: Server 层负责建立连接、分析和执行 SQL。MySQL 大多数的核心功能模块都在这实现,主要包括连接器,查询缓存、解析器、预处理器、优化器、执行器等。另外,所有的内置函数和所有跨…

Unity读书系列《Unity3D游戏开发》——拓展编辑器(一)

文章目录 前言一、扩展Project视图1、右键扩展菜单(Asset)2、监听事件3、拓展布局 二、扩展Hierarchy视图1、拓展菜单(GameObject)2、拓展布局3、重写菜单 三、扩展Inspector视图1、扩展原生组件2、扩展继承组件 四、扩展Scene视图…

嵌入式软件工程师面试题——2025校招社招通用(C/C++)(四十七)

说明: 面试群,群号: 228447240面试题来源于网络书籍,公司题目以及博主原创或修改(题目大部分来源于各种公司);文中很多题目,或许大家直接编译器写完,1分钟就出结果了。但…

【每日一题】5.LeetCode——环形链表

📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 🙏小杨水平有限,欢迎各位大佬指点&…

抖店春节飞鸽还用回复吗?飞鸽自动回复怎么设置?

一、抖店春节飞鸽还用回复吗? 在春节期间,由于员工休假和放假的原因,客服人员数量可能会减少。这就导致了客服团队在春节期间的人手不足,难以及时回复顾客的咨询和问题。 然而,为了保证顾客的满意度和体验&#xff0…

【智能家居入门之环境信息监测】(STM32、ONENET云平台、微信小程序、HTTP协议)

作为入门本篇只实现微信小程序接收下位机上传的数据,之后会持续发布如下项目:①可以实现微信小程序控制下位机动作,真正意义上的智能家居;②将网络通讯协议换成MQTT协议再实现上述功能,此时的服务器也不再是ONENET&…

c# 对路径的访问被拒绝

c#写入一个文件,报错: c# 对路径的访问被拒绝 解决方法: 检查文件路径和目录权限: 确保你的应用程序有权限写入指定的文件或目录。在某些情况下,你可能需要以管理员身份运行应用程序或更改文件/目录的权限。 确保目…

【动态规划】【字符串】【行程码】1531. 压缩字符串

作者推荐 视频算法专题 本文涉及知识点 动态规划汇总 LeetCode 1531. 压缩字符串 II 行程长度编码 是一种常用的字符串压缩方法,它将连续的相同字符(重复 2 次或更多次)替换为字符和表示字符计数的数字(行程长度)…

将图片批量导入PPT

1.代码 这部分使用到了“python-pptx”这个库,首先设置储存图片的文件夹路径,输入新建PPT的名字,然后自动将文件夹下的JPG图片按编号顺序写入PPT文件,最后保存: import os import pptx from pptx.util import Inches …

Linux:简单聊聊线程调度

目录 一、什么是线程调度?二、什么时候会进行线程调度?三、什么原因会导致某个线程调度延迟?四、内核抢占和抢占式调度五、应用层线程优先级设置过高会导致什么问题? 在工作中,线程调度这个词我们经常提及,…

MyBatis详解(6)-- 分页及缓存

MyBatis详解(6) 分页缓存特点:限制:术语:加载分类立即加载:延迟加载:mybatis缓存: 缓存的适用性MyBatis 缓存分类一级缓存注意:一级缓存未命中二级缓存二级缓存的优劣自定…

java - 多态

多态:它允许不同类型的对象对同一方法进行不同的实现, 具体来说,多态性指的是:通过父类的引用变量,来引用子类的对象,从而实现对不同对象的统一操作。 多态,只适用于方法,不适用于属…

php小数四舍五入、向上取整、向下取整

简单示例 1、round 对浮点数进行四舍五入 $result round(3.456, 2); var_dump($result);// 输出结果为:double(3.46)$result round(3.451, 2); var_dump($result);// 输出结果为:double(3.45) 2、ceil 进一取整:向上取整返回下一个最高的整数 $r…

qq通讯录怎么关闭?QQ好友删除了怎么恢复?

在QQ中,通讯录是我们管理好友和进行聊天的重要工具,但有时候我们可能需要一些隐私保护,不让一些用户通过手机通讯录添加自己。如果您正在思考qq通讯录怎么关闭以及恢复意外删除的好友,本文将为您详细介绍如何关闭QQ通讯录和恢复被…

php实现多进程的几种方式

目录 一:使用pcntl扩展库 二:使用Swoole扩展 三:使用多进程模式PHP-FPM 在PHP中实现多进程主要有以下几种方式: 一:使用pcntl扩展库 pcntl扩展库提供了多线程相关的函数,如pcntl_fork()用于创建子进程…

详解操作系统各章大题汇总(死锁资源分配+银行家+进程的PV操作+实时调度+逻辑地址->物理地址+页面置换算法+磁盘调度算法)

文章目录 第三章:死锁资源分配图例一例二 第三章:银行家算法第四章:进程的同步与互斥做题步骤PV操作的代码小心容易和读者写者混 1.交通问题(类似读者写者)分析代码 2.缓冲区问题(第二个缓冲区是复制缓冲区…

RK3568驱动指南|驱动基础进阶篇-进阶6 内核运行ko文件实验——系统调用

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工…