コード例 #1
0
from java.util.concurrent import Executors, TimeUnit
from java.lang import System
from ini.trakem2.persistence import Loader
from ini.trakem2 import Project
from ini.trakem2.utils import CachingThread
import sys, traceback

# 4096x4096 RGBA
IMAGE_SIZE = pow(4096, 2) * 4  # bytes
RELEASE_EVERY = 60  # seconds

exe = Executors.newScheduledThreadPool(1)


def free():
  #Loader.releaseAllCaches()
  #System.out.println("Released all")
  #
  # Instead of releasing all, release half of all loaded images
  try:
    image_n_bytes = IMAGE_SIZE
    projects = Project.getProjects()
    if 0 == projects.size():
      return
    loader = projects[0].getLoader()
    f = Loader.getDeclaredField("mawts")
    f.setAccessible(True)
    mawts = f.get(loader)
    n_cached_images = mawts.size()
    n_bytes_released = 0
    if n_cached_images > 0:
コード例 #2
0
 def __init__(self, thread_name):
     self.thread_pool_name = thread_name
     self.thread_pool = Executors.newScheduledThreadPool(MAX_CONCURRENT)
     self.futures = []
コード例 #3
0
ファイル: component.py プロジェクト: tliron/prudence.archive
# Logging
#

component.logService.loggerName = 'web-requests'

#
# StatusService
#

component.statusService = DelegatedStatusService()

#
# Executor
#

executor = Executors.newScheduledThreadPool(Runtime.getRuntime().availableProcessors() * 2 + 1)
component.context.attributes['com.threecrickets.prudence.executor'] = executor
tasks = []

#
# Scheduler
#

scheduler = Scheduler()
component.context.attributes['com.threecrickets.prudence.scheduler'] = scheduler

#
# Cache
#

cache = ChainCache()