Вопрос: По какой-то странной причине, get_dispChar
занимает почти 400 миллисекунд для вызова только тогда, когда resourceList
имеет 1 или более объекта Resource. Почему это происходит и как я могу это исправить?
Мой класс TerrainTile имеет следующий конструктор
class TerrainTile:
def __init__(self):
self.tileX = 0 #world x coord
self.tileY = 0 #world y coord
self.elevation = 0 #int from 0-100, tells how high the highest point on the tile is
self.symbol = '?'
self.fgCol = [0,0,0,0]
self.bkCol = [0,0,0,0]
self.resourceList = [] #list of resource objects
self.buildingList = [] #list of building objects
self.accessibility = 0 #int from 0 - 128 determing maximum building size total on plot
self.highestDispPriority = 0 #for displaying resources or buildings
return
self.symbol
определяется следующим:
# determine if a resource OR building on the tile has a more important symbol and color to display
for rs in self.resourceList:
if(int(rs.get_dispPriority()) > self.highestDispPriority):
self.fgCol = rs.get_color()
self.symbol = rs.get_symbol()
return
И символ, полученный из этой функции:
def get_dispChar (self):
#print("Printing: ",self.symbol)
return self.symbol
По какой-то странной причине, get_dispChar
требует почти 400 миллисекунд для вызова только тогда, когда resourceList
содержит 1 или более объекта Resource. Почему это происходит и как я могу это исправить? Определение объекта ресурса немного усложняется, потому что я загружаюсь из XML-файла, но вот конструктор для класса Resource.
#initialization of Resource
def __init__(self, name, itemID, companyID, quantity, volumePerUnit, valuePerUnit, color, symbol, dispPriority, isDiscovered):
self.name = name
self.itemID = itemID
self.companyID = companyID
self.quantity = quantity
self.volumePerUnit = volumePerUnit
self.valuePerUnit = valuePerUnit
self.color = color
self.symbol = symbol
self.dispPriority = dispPriority
self.isDiscovered = isDiscovered
Я буду постоянно обновлять страницу, поэтому должен иметь возможность предоставлять любые фрагменты кода. Да, я знаю, что мой код - спагетти-аутизм и более чем открыт для предложений по улучшению, не связанных с вопросом.
Заранее спасибо!
Я пройду и проверим время, если тебе понадобится их
Вот таблица с указанием времени, которое требуется для вызова get_dispChar из TerrainTiles
#Moving into main game loop
0.0 #how long it takes to call get_dispChar when the object does NOT have an object in resourceList
0.6212029457092285 #how long it takes to call get_dispChar when the object DOES have an object in resourceList