Francesco Romani has submitted this change and it was merged.

Change subject: api: Speed up schema loading

api: Speed up schema loading

Use yaml.CLoader for 13x speedup in vdsm schema loading.

Here is a comparison with other formats:

$ python

      yaml: 1.053720 seconds per load
     cyaml: 0.086472 seconds per load
      json: 0.049521 seconds per load
    pickle: 0.001516 seconds per load

$ python3

      yaml: 1.340607 seconds per load
     cyaml: 0.100010 seconds per load
      json: 0.026627 seconds per load
    pickle: 0.002153 seconds per load

$ grep 'model name' /proc/cpuinfo | head -n1
model name      : Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz

Clearly the best format is pickle, 700X times faster on python 2 and
638X times faster on python 3. However loading the schema in 100
milliseconds seems to be good enough for now.

The benchmark script:

Change-Id: I230fb88c279973f542f6e1cac17f43ff6f0d2f62
Signed-off-by: Nir Soffer <>
Signed-off-by: Piotr Kliczewski <>
Reviewed-by: Simone Tiraboschi <>
Continuous-Integration: Jenkins CI
Reviewed-by: Piotr Kliczewski <>
Tested-by: Simone Tiraboschi <>
Reviewed-by: Francesco Romani <>
Continuous-Integration: Francesco Romani <>
Tested-by: Francesco Romani <>
M lib/api/
1 file changed, 1 insertion(+), 1 deletion(-)

  Nir Soffer: Looks good to me, but someone else must approve
  Francesco Romani: Verified; Looks good to me, approved; Passed CI tests

To view, visit
To unsubscribe, visit

Gerrit-MessageType: merged
Gerrit-Change-Id: I230fb88c279973f542f6e1cac17f43ff6f0d2f62
Gerrit-PatchSet: 2
Gerrit-Project: vdsm
Gerrit-Branch: ovirt-4.0.5
Gerrit-Owner: Piotr Kliczewski <>
Gerrit-Reviewer: Francesco Romani <>
Gerrit-Reviewer: Nir Soffer <>
Gerrit-Reviewer: gerrit-hooks <>
vdsm-patches mailing list --
To unsubscribe send an email to

Reply via email to