import threading from pymol.wizard import Wizard from pymol import cmd import pymol import types import time class Benchmark(Wizard): def bench_fn(self,action): time.sleep(0.5) self.cmd.do("_ wizard benchmark,%s"%action) def report(self,name,value): ver = self.cmd.get_version()[0] print("PyMOL %s benchmark: %30s = %10.5f"%(ver,name,value)) def launch(self,name): return None def configure(self): self.cmd.reinitialize() def __init__(self,arg0=None,_self=cmd): Wizard.__init__(self,_self) self.gl = 5.0 self.short_cpu = 8.0 self.long_cpu = 16.0 self.message = [] if arg0 is not None: if hasattr(self,arg0): getattr(self,arg0)() def reset(self): pass def run_all(self): self.run_gl() self.run_cpu() def run_cpu(self): self.surface_calculation() self.configure() self.mesh_calculation() self.configure() self.ray_trace1() self.configure() def run_gl(self): self.configure() self.updates() self.configure() self.smooth_lines() self.configure() self.jagged_lines() self.configure() self.dots() self.configure() self.sticks() self.configure() self.surface() self.configure() self.spheres() self.configure() self.cartoon() self.configure() self.blits() self.configure() def updates(self): self.cmd.fragment("methane") self.cmd.set("antialias",0) cnt = 0 elapsed = 0.0 self.cmd.refresh() self.cmd.meter_reset() start = time.time() while elapsed