Skip to content

Commit 8dc0dbc

Browse files
authored
Merge pull request #3 from MrClock8163/dev
v2.1.0
2 parents 2556235 + b7af1fd commit 8dc0dbc

File tree

8 files changed

+37
-5
lines changed

8 files changed

+37
-5
lines changed

AddonProfiler/CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Changelog
2+
3+
## [v2.1.0](https://github.com/MrClock8163/AddonProfiler/releases/tag/v2.1.0) (Blender 2.90 -> 4.2)
4+
5+
### Added
6+
7+
- Filter Time logging option
8+
9+
## [v2.0.0](https://github.com/MrClock8163/AddonProfiler/releases/tag/v2.0.0) (Blender 2.90 -> 4.2)
10+
11+
Initial release of the rewrite

AddonProfiler/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"author" : "MrClock, bd3d (originally), rubenmesserschmidt (initial fixes)",
44
"description" : "Monitor and capture add-on profiling data",
55
"blender" : (2, 90, 0),
6-
"version" : (2, 0, 0),
6+
"version" : (2, 1, 0),
77
"wiki_url" : "",
88
"tracker_url" : "https://github.com/MrClock8163/AddonProfiler/issues",
99
"category" : "Development",

AddonProfiler/blender_manifest.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ type = "add-on"
55
id = "AddonProfiler"
66
name = "Add-on Profiler"
77
tagline = "Monitor and capture add-on profiling data"
8-
version = "2.0.0"
8+
version = "2.1.0"
99
blender_version_min = "4.2.0"
1010
website = "https://github.com/MrClock8163/AddonProfiler"
1111
tags = ["Development"]

AddonProfiler/props.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,18 @@ class APROF_PG_logging(bpy.types.PropertyGroup):
6767
),
6868
default='WHITELIST'
6969
)
70+
filter_time_enable: bpy.props.BoolProperty(
71+
name="Filter Time",
72+
description="Hide items under an execution time threshold"
73+
)
74+
filter_time_threshold: bpy.props.FloatProperty(
75+
name="Threshold",
76+
description="Filter cutoff threshold",
77+
min=0,
78+
soft_max=60,
79+
precision=6,
80+
step=0.0001
81+
)
7082

7183

7284
classes = (

AddonProfiler/ui.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,12 @@ def draw(self, context):
235235
row.prop(props, "logger_details", expand=True)
236236
layout.prop(props, "filter_module")
237237

238+
layout.label(text="Time Threshold:")
239+
col_time = layout.column(align=True)
240+
col_time.prop(props, "filter_time_enable", toggle=True)
241+
if props.filter_time_enable:
242+
col_time.prop(props, "filter_time_threshold")
243+
238244
layout.label(text="Exclude:")
239245
row_filters = layout.row(align=True)
240246
row_filters.prop(props, "filter_comp", text="Comprehension", toggle=True)

AddonProfiler/utils.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,14 @@ def logger_call(self, frame: types.FrameType, arg):
6060
def logger_return(self, frame, arg):
6161
file, name, key = self.logger_names(frame.f_code)
6262

63-
if key not in self.callstack:
63+
start = self.callstack.pop(key, None)
64+
if start is None:
6465
return
6566

6667
log = ""
67-
start = self.callstack.pop(key)
68+
duration = (datetime.now() - start).total_seconds()
69+
if duration <= self.settings.filter_time_threshold and self.settings.filter_time_enable:
70+
return
6871

6972
if 'NAME' in self.settings.logger_details:
7073
log += name
@@ -76,7 +79,7 @@ def logger_return(self, frame, arg):
7679
log += " at %s" % start
7780

7881
if 'TIME' in self.settings.logger_details:
79-
log += " in %0.9fs" % (datetime.now() - start).total_seconds()
82+
log += " in %0.9fs" % duration
8083

8184
print(log)
8285

images/img_logging.png

14.3 KB
Loading

images/img_tool_panels.png

7.73 KB
Loading

0 commit comments

Comments
 (0)