mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2026-01-12 07:10:52 +08:00
⚡️ Speed up function add_area_dims by 56%
To optimize the given function, we can avoid repeated slicing and concatenations within the loop, which can be computationally expensive, especially for large lists. Instead, we can split the list just once and construct the final result using list operations more efficiently. Here's the optimized version of the program. ### Optimizations. 1. Calculate the current number of dimensions (`current_dims`) once before the loop. 2. Within the loop, use the `extend()` method to append parts of the `area` list efficiently rather than using concatenation (`+`) multiple times. 3. Use a single list construction operation to build the new area list in-place. This avoids the repeated creation of intermediary lists and makes the loop more efficient.
This commit is contained in:
parent
8a438115fb
commit
da2629c12c
@ -21,8 +21,16 @@ import numpy
|
||||
|
||||
|
||||
def add_area_dims(area, num_dims):
|
||||
while (len(area) // 2) < num_dims:
|
||||
area = [2147483648] + area[:len(area) // 2] + [0] + area[len(area) // 2:]
|
||||
current_dims = len(area) // 2
|
||||
while current_dims < num_dims:
|
||||
midpoint = len(area) // 2
|
||||
# More efficient construction of the new area list
|
||||
new_area = [2147483648]
|
||||
new_area.extend(area[:midpoint])
|
||||
new_area.append(0)
|
||||
new_area.extend(area[midpoint:])
|
||||
area = new_area
|
||||
current_dims += 1
|
||||
return area
|
||||
|
||||
def get_area_and_mult(conds, x_in, timestep_in):
|
||||
|
||||
Loading…
Reference in New Issue
Block a user