From 9bf1355e17e7903212d439fe718ae18939466962 Mon Sep 17 00:00:00 2001 From: Christian Heller Date: Wed, 9 Dec 2020 00:16:13 +0100 Subject: [PATCH] Avoid multiprocessing until it's really worth it. --- plomrogue/game.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/plomrogue/game.py b/plomrogue/game.py index 3b0b25f..b0233b3 100755 --- a/plomrogue/game.py +++ b/plomrogue/game.py @@ -230,7 +230,6 @@ class Game(GameBase): """Send out game state data relevant to clients.""" # TODO: limit to connection_id if provided - print('DEBUG send_gamestate') self.io.send('TURN ' + str(self.turn)) from plomrogue.mapping import FovMap import multiprocessing @@ -242,15 +241,19 @@ class Game(GameBase): player = self.get_player(c_id) if player._fov: continue - player.prepare_multiprocessible_fov_stencil() #! + player.prepare_multiprocessible_fov_stencil() player_fovs += [player._fov] player_fov_ids += [player.id_] - print('DEBUG regen FOV for', player.id_) - if len(player_fovs) > 0: + new_fovs = [] + single_core_until = 8 # since multiprocess has its own overhead + if len(player_fovs) > single_core_until: pool = multiprocessing.Pool() - new_fovs = pool.map(FovMap.init_terrain, [fov for fov in player_fovs]) #! + new_fovs = pool.map(FovMap.init_terrain, [fov for fov in player_fovs]) pool.close() pool.join() + elif len(player_fovs) <= single_core_until: + for fov in player_fovs: + new_fovs += [fov.init_terrain()] for i in range(len(player_fov_ids)): id_ = player_fov_ids[i] player = self.get_thing(id_) -- 2.30.2