►
From YouTube: 2020 06 26 GSoC Git Plugin Performance Project
Description
Jenkins project office hours for Google Season of Docs project to improve git plugin performance
A
Yes,
one
one
thing:
I
have
to
say
that
I'm
not
going
to
use
these
gloves.
Why
I
myself
get
confused
when
I'm,
explaining
these
girls
I'm
going
to
simplify
them
too
much
smaller
will
break
them
down
to
much
smaller
drops
for
individual
tests.
I
have
so.
The
first
test
was
basically
just
one
fetch
with
the
second.
The
second
test
get
redundant
fetch
benchmark,
it's
with
two
fetches,
so
21
second
per
operation.
23
second
per
operation
basically
means
the
difference
when
we
are
adding
the
second
fetch
to
the
equation.
A
So
the
difference
is,
you
are
seeing
in
per
second
operations
the
differences
the
game
you're.
Seeing
is
because
we
are
adding
the
second
operation
in
the
equation
in
the
benchmark.
So
so
I
I'd,
say
with
the
considerable
increase
I've
seen
is
with
the
last
one
is
that
is
the
jacott,
with
ruby
with
the
double
fetches
it
took
268
second
per
operation
and
with
just
one
clone,
it
took
256,
but
then
again,
there's
there's
a
problem.
A
The
problem
is
the
yes,
the
error,
the
error
rate
and
and
because
we're
averaging
results
it's
it's
always
dangerous,
because
an
extreme
observation
might
skew
the
whole
result.
So
that's
that's
one
thing
that
this
one
of
the
things
mean
possibly
I
could
use.
I
could
use
another
metric
than
average
I
I
actually
have
to
look.
If
I
could
look
at
something
like
median
median
is
not
affected
by
the
variable.
The
large,
if
you
have
a
large
variability
for
an
example.
A
If
you
have
a
500
MMB
repository,
it
usually
takes
10
seconds
to
stretch
it,
but
because
of
the
network
with
us,
the
variability
it
took
20
seconds
and
it
skews
the
result
too
much
me
the
average
I
could
possibly
use
medium,
which
would
that
would
not
happen
with
the
meat.
It
would
take
the
middle
observation,
so
I
would
have
to
look
on
that.
How
can
I
I
would
have
to
look
at
the
metrics?
Jjh
provides
I've
seen
its
throughput,
then
I've
seen
average
and
let's
see
here
the
pulses.
A
Well,
maybe
we
can
choose
a
better
metric
if,
when
we
are
talking
about
benchmarking
operations
over
the
network,
so
the
claim
that
using
a
big
deposit
using
a
large
deposit
tree,
we
could
see
performance
degradation
for
jig
it
with
the
redundant.
Iii
cannot
clean
that
because
the
error
rate
you
can
see
at
a
bar
is
it's
it's
high,
but
but
with
all
of
the
results
we
have,
there
is
a
second
or
a
two-second
difference
and
the
profiling
results.
A
A
All
the
other
experiments
showed
me
that
there
is
a
good
5
or
10
seconds,
latency
added
because
of
the
second
wrench
and
one
more
one,
more
hypothesis
kind
of
an
hypothesis
I
have
which
I
have
to
ask
you
guys
is
that
maybe
I'm
seeing
here,
2
or
3
seconds,
because
I
am
running
the
operation
in
a
JVM
I'm,
not
running
it
in
a
Jay
Jenkins
instance.
But
when
I'm
running
running
it
in
a
Jenkins
instance,
there
might
be
some
overheads,
which
would
be
added
which
T
environment
is
different.
A
Basically,
that's,
but
I
also
I,
think
I
assume
that
the
bit
CL
I
get
the
the
operation
is
independent.
The
instance
instances
behavior.
So
with
that
possibility
that
ok,
the
Jenkins
instance
the
performance,
my
differ
would
be
considered
for
J
again,
maybe
first
here
like
it,
that's
something
mark
and
fan
and
you
guys
can
conform
I'm,
not
sure
about,
but
it's
something
I.
Actually,
yes,
I
was.
B
Not
worried
much
about
that,
because
the
bulk
of
the
time
spent
in
these
get
operations
either
jagged
or
command
like
it
is
done
on
the
agent
in
a
workspace
and
therefore
the
the
JVM
on
that
agent
is
probably
not
heavily
loaded
doing
other
things.
Also
so
I
wouldn't
be
concerned
about
that
specific
one.
You
just
referenced
it's
yes,
it's
it's
certainly
possible
that
there
are
other
things
going
on,
but
I
don't
think
it's
likely
to
alter
one
versus
the
other.
B
A
A
Yes,
so
the
third
one
would
be
implementing
performance,
a
movement
into
the
plugin.
This
is
this.
Is
this
is
going
to
be
our
wave
forward
as
well?
So
to
think
we
know
is
that
we're
going
to
provide
a
compatibility
switch
to
the
users
I've
shown
you
guys
how
we
can
put
it
in
the
configuration
page
it's
by
default,
we're
going
to
enable
performance,
improvement,
changes
in
the
plugin,
someone,
a
user
can
by
choice,
revert
to
the
old
noggin
if
they
want
to.
The
second
is
the
heuristics.
A
We
are
talking
about
the
repository
estimated
class
and
with
that
I
also
have
I
think
where
the
time
is
over.
It's
a
30,
so
I
think
I'll
probably
write
that
in
the
killer
channel,
if
it's
okay
with
you
guys
or
if
it's,
if
you
guys
are
comfortable
I,
could
discuss
something
one
more
thing:
I
wanted
to
discuss.
I'd.
B
A
I,
just
take
it's
probably
a
minute,
so
this
this
the
demo.
This
is
the
basic
flavor,
of
course,
I'm
going
to
add
the
things
I
have
discussed
and
the
graphs
and
clearer
graphs,
not
the
default
graphs.
We
get
from
the
J,
the
visualize
of
J,
mature
visualize
the
website,
so
so
I'm
going
to
do
that
and
I'll
share
that
as
soon
as
I
can-
and
you
guys
have
the
access
editors
access
to
the
slides.
A
So
so
right
now
it
doesn't
have
too
much
content
to
edit,
but
fun
said:
does
I'll
you
guys
can
modify,
read
changing
so
while
I
was
looking
at
get
LS
remote.
So
we
have
the
the
method
method
which,
which
is
implemented
in
the
gate.
Client
is
called
get
remote
references,
so
I,
actually
I
found
a
class
called
gate,
SCM
telescope,
which
basically
is
an
extension
point
which
examines
our
repository
from
a
distance
without
requiring
a
local
checkout,
and
that
is
exactly
something
we
want
to
do.
A
The
examination
might
be
different,
but
the
kind
of
examination
won't
be
wanna
do
might
be
different,
but
it's
it's
it's
it's
a
huge
relief
and
help
for
me
because
there's
something
I
can
look
up
to
and
I
can
possibly
now.
The
questions
to
the
first
question
I
would
have
with
this
class
would
be.
Do
I.
Add
my
the
things
I
want
to
do
in
this
class,
because
it's
it
is
exactly
in
a
general
sense.
It
is
examining
a
repository
and
estimating
the
size
of
the
repository
also
can
come
under
examining
the
repository.
A
The
only
thing
we
would
have
to
worry
the
biggest
thing
would
be
to
not
break
the
existing
cases.
We
have
by
lighting
those
things.
So
so,
if,
if
my
changes
or
adding
them
would
change
the
current
status
of
the
plug-in,
then
to
keep
it
in
a
separate
class
because
because
estimation
of
the
size
might
be
I
know
it's
not
dangerous,
but
I
don't
know
if
any
kind
of
issues
we
have
not
thought
about,
I
could
have
a
separate
class
for
it,
but
this
seems
like
a
great
place
to
add
those
things.
A
Now
the
gate
SM
telescope
I
saw
that
this
this
class
is
extended
by
actually
using
the
abstracted
SEM
source
and
to
the
to
the
basic
understanding.
I
have
the
gate.
Sem
source
is
the
implementation
of
SEM
source,
the
SEM
API,
which
is
basically
created
for
a
single
repository.
We
have
one
a
same
source
as
as
far
as
I
know,
and
we
create
a
gate.
Sem
object
using
abstract
gate,
SEM
source.
This
is
like
it.
This
is
the
implementation
to
create
get
a
same
object.
That
is
what
I've
seen
as
of
now.
A
The
preliminary
examination
I've
had
of
the
class,
so
so
I
can
see
here
that
the
telescope
is
being
used
by
abstract
gate
as
same
source
to
to
get
the
remote
references
and
not
sure
what
it
what
it
is
doing
it
by
the
tight
now,
but
it's
using
it
so
so
I
can
do
the
same
thing.
Heuristics
is
the
first
one.
The
cache
thing
we
could.
Probably
we
could
have
that
and
then
with
the
API
is
I
have
to
first
figure
out.
A
If
the
information
is
correct
or
not,
and
then
we
will
do
you
since
rest
ApS
and
not
used
in
this
project,
you
would
have
to
discuss
that
as
well.
But
I
can
I
can
look
at
this
class
and
make
something
similar.
So
what
I
just
need
to
know
should
I
add
my
functionality
to
this
class
or
make
another
extension
point.
B
B
B
You
did
a
brilliant
job
of
it,
so
so
this
looks
exactly
like
what
you
need
I
would
assume.
But
again
this
is
from
my
own
experience.
I
would
assume
that
you
want
to
provide
an
implementation
of
this
thing
and
use
it.
I
use
that
implementation
to
do
the
review.
Would
you
use
get
SEM
telescope,
but
you
are
welcome
to
add
to
it.
If
that
will
help
you
write.
If
this
is
not
some
you're
not
allowed
to
change
it.
The
person
who
created
this
class
is
in
my
world
a
genius.
B
So
so
you
need
to
he's
absolutely
fundamentally
brilliant
and,
and
so
you
should
think
very
carefully
before
you
modify
this.
My
code
looks
like
a
mortal
rodent
right.
It
looks
like
somebody
who
who
is
still
learning
still
struggling
Stephen,
who
wrote
this
particular
code
is:
is
over
the
top
brilliant
in
doing
things.
So
so
absolutely
this
is
a
great
place
to
work
and
a
great
place
for
you
to
think
about.
Should
I
insert
it
here
or
should
I
create
an
implementation
that
uses
this
abstract
class
and
I'm,
not
sure
I'm.
B
The
right
one
to
guide
you
fran
is
probably
much
better
suited
or
justin
in
terms
of
deciding
which
layer
you
put
it
at,
but
you've
chosen
a
brilliant
class
to
look
at
and
an
SCM
telescope
with
its
objective
of
getting
information
about
a
repository
without
a
local
check-out
seems
to
fit
exactly
with
what
you're
trying
to
do
with
heuristics
right.
Yes,
we
will
take
the
cache
if
we
got
it,
because
that's
the
most
reliable,
but
if
we
don't
have
a
cache,
SCM
telescope
gives
us
a
way
to
go.
A
C
A
Ok,
yeah,
ok,
I'm,
going
to
explore
this
class
more
and
then
possibly
the
years
thing
for
me
to
do
would
be
to
add
the
year
six
here,
but
we
will
discuss
that
in
much
later
greater
depth
once
I
explore
the
class
more
so
so.
Yes,
thank
you
for.
Thank
you
guys
for
giving
your
extra
time
and
the
time
you
guys
gave
usually
so
I
wonder
they
refine
the
presentation
and
then
you
guys
can
review
it
wherever
you
prize
out
the
time
now.
B
A
C
A
B
Or
Oleg
I
think
Oh
like
just
went
on
vacation
today,
so
Martin.
Let's
just
ask
the
ji-suk,
org
administrators
I
believe
Martin
Dion
Zoo
will
host
the
leading
on
on
Wednesday.
So
we
could
ask
Martin,
hey
Martin
or
I.
Would
even
not
even
I
would
go
a
different
approach.
I
would
say:
Martin
I
think
I
should
I
should
have
about
30
minutes.
Is
it
okay?
B
A
A
B
All
right
and
I
apologize
in
retrospect
I
had
not
started
the
recording
until
about
20
minutes
into
the
meeting.
So
the
meeting
recording
is
a
flawed
record
of
what
we've
discussed.
Rishabh
you're
doing
great.
Thank
you,
I'll
post
the
recording
the
pieces
of
the
recording
that
exists
shortly.
That's.
B
A
They
haven't
decided
the
exact
timings
for
the
presentation
and
they
are
going
to
have
it
in
two
batches.
So
not
all
of
the
guys
are
going
to
present.
At
the
same
day,
they
will
have
it
on
July
1
and
for
July
2.
They
haven't
decided
the
times,
but
three
students,
maybe
on
the
first
date
or
three
or
four
more
than
the
second.
No
that's
that
I
thought
all.
B
Do
we
as
a
group
of
mentors,
want
to
meet
on
Wednesday
or
do
we
allow
you
that
time
to
to
have
final
preparation
without
the
mentors,
what
we
could
either
cancel
Wednesday's
meeting
in
favor
of
you
getting
using
the
time
to
prepare,
or
we
could
have
the
meeting,
with
the
entire
focus
being
10
or
15
minutes
of
looking
one
last
time
at
your
material
before
you
present?
What
do
you
prefer?
Rishabh?
You
want
to
meet
Wednesday
or
not
I.
Think.
A
I
can
need
for
10
we
can.
We
could
meet
for
10
15
minutes
before
the
moon
harm
to
get
a
review
before
presenting,
but
I'm.
Okay,
both
ways
actually
I,
don't
have
a
problem,
because
you
guys
will
review
the
presentation,
Google,
slides
and
I.
Think
I've,
given
a
fair
estimation
of
what
I'm
going
to
say.
So
if
you
guys
think
that
it
needs
a
review
before
the
final
presentation,
then
it's
okay
with
me.