Skip to content
Snippets Groups Projects
Forked from Platform / Development / swh-model
96 commits behind the upstream repository.
user avatar
Pierre-Yves David authored
Do not create model object while sorting entry before creating model
object.

This is another case of "let us create object X to prepare the creation
of object X", slowing things down.

In practice, we will likely skip this code-path after the next
changeset, however this seems useful to get this performance footgun
out the way.

We tested this change on simple information of the Mercurial loader,
with a noop-loader stockage:

    swh loader run mercurial https://foss.heptapod.net/mercurial/mercurial-devel directory=/data/repos/mercurial-devel

= Median time of 3 run =
before  12 minutes 59 seconds
after:  11 minute  56 seconds

On a profile of the same run, the `to_model` call of the from_disk's `Directory` class took the following percentage:
before: 24%
after:  17%
ad3ecac9
History

swh-model

Implementation of the Data model of the Software Heritage project, used to archive source code artifacts.

This module defines the notion of SoftWare Heritage persistent IDentifiers (SWHIDs) and provides tools to compute them:

   $ swh-identify fork.c kmod.c sched/deadline.c
   swh:1:cnt:2e391c754ae730bd2d8520c2ab497c403220c6e3    fork.c
   swh:1:cnt:0277d1216f80ae1adeed84a686ed34c9b2931fc2    kmod.c
   swh:1:cnt:57b939c81bce5d06fa587df8915f05affbe22b82    sched/deadline.c

   $ swh-identify --no-filename /usr/src/linux/kernel/
   swh:1:dir:f9f858a48d663b3809c9e2f336412717496202ab