Try to use Protobuf CPP implementation if it is available

The C++ implementation is far faster so should always be
used if available. If not, we log a warning since it makes
a big difference.
This commit is contained in:
Arjen Hiemstra 2015-11-04 16:42:07 +01:00
parent cb05aee391
commit 1140c853d1
2 changed files with 11 additions and 0 deletions

View File

@ -134,6 +134,9 @@ class CuraApplication(QtApplication):
parser.add_argument("--debug", dest="debug-mode", action="store_true", default=False, help="Enable detailed crash reports.")
def run(self):
if not "PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION" in os.environ or os.environ["PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION"] != "cpp":
Logger.log("w", "Using Python implementation of Protobuf, expect bad performance!")
self._i18n_catalog = i18nCatalog("cura");
i18nCatalog.setTagReplacements({

View File

@ -4,6 +4,7 @@
# Cura is released under the terms of the AGPLv3 or higher.
import sys
import os
def exceptHook(type, value, traceback):
import cura.CrashHandler
@ -11,6 +12,13 @@ def exceptHook(type, value, traceback):
sys.excepthook = exceptHook
try:
from google.protobuf.pyext import _message
except ImportError:
pass
else:
os.environ["PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION"] = "cpp"
import cura.CuraApplication
if sys.platform == "win32" and hasattr(sys, "frozen"):