SlideShare ist ein Scribd-Unternehmen logo
1 von 172
Downloaden Sie, um offline zu lesen
Talk About Performance
@YaroslavBunyak	

Senior Software Engineer, SoftServe Inc.
What is Performance?
What is a Program?

data

xform

data
What is a Program?

data

xform

data
What is a Program?

data

xform

TH IS
!
!

data
What is a Program?

data

xform

data
What is a Program?

data

xform

data
How to Create a Program?
Simple
Simple
Write code	

Your favorite programming language: C, C++, Objective-C, Java etc.
Simple
Write code	

Your favorite programming language: C, C++, Objective-C, Java etc.

Compile	

Compiler will transform your code into machine code
Simple
Write code	

Your favorite programming language: C, C++, Objective-C, Java etc.

Compile	

Compiler will transform your code into machine code

Run on target hardware	

Hardware is a black box
Simple
Write code	

Your favorite programming language: C, C++, Objective-C, Java etc.

Compile	

Compiler will transform your code into machine code

Run on target hardware	

Hardware is a black box

<- Righ t?
Simple
Write code	

Your favorite programming language: C, C++, Objective-C, Java etc.

Compile	

Compiler will transform your code into machine code

Run on target hardware	

Hardware is a black box

Wro ng!
<- Righ t?
Simple
Write code	

Your favorite programming language: C, C++, Objective-C, Java etc.

Compile	

Compiler will transform your code into machine code

Run on target hardware	

Hardware is a black box
Bad Programs
Bad Programs
Sloppy	

Using the program is like
trying to swim in jelly
Bad Programs
Sloppy	

Using the program is like
trying to swim in jelly

Use memory
inefficiently
Bad Programs
Sloppy	

Using the program is like
trying to swim in jelly

Use memory
inefficiently
Battery is dead
already
Good Programs
Good Programs

Run fast
Good Programs

Run fast
Use little memory
Good Programs

Run fast
Use little memory
Save battery
Good Programs

Run fast
Use little memory
Save battery

I w r i te t h e m !
Good Programs

Run fast
Use little memory
Save battery

I w r i te t h e m !
I t wa s a jo k e :)
Good Programs

Run fast
Use little memory
Save battery
How to Create a Good Program?
What is a Program?

data

xform

data
What is a Program?
What is a Program?
What is a Program?

code

hardware
Code Sample
int a = ...
int b = ...
// more code...
!

int c = a + b;
Code Sample
int a = ...
int b = ...
// more code...
!

int c = a + b;
Code Sample
int a = ...
int b = ...
// more code...
!

int c = a + b;

Q : H o w f a s t t h is
c o de is?
Code Sample
int a = ...
int b = ...
// more code...
!

int c = a + b;

Q : H o w f a s t t h is
c o de is?
A: De pe nd s.. .
Code Sample
int a = ...
int b = ...
// more code...
!

int c = a + b;
Code Sample
int a = ...
int b = ...
// more code...
!

int c = a + b;
Code Sample
int a = ...
int b = ...
// more code...
!

int c = a + b;

... on ho w fa st
CP U adds t wo
in te ge rs?
Code Sample
int a = ...
int b = ...
// more code...
!

int c = a + b;

... on ho w fa st
CP U adds t wo
in te ge rs?
NO
Code Sample
int a = ...
int b = ...
// more code...
!

int c = a + b;

... on ho w fa st
CP U adds t wo
Any mo de ge rs? U
in te rn CP
ca n add in te geO
N rs
ve ry fa st
!

~1 cycle
Code Sample
int a = ...
int b = ...
// more code...
!

int c = a + b;
Code Sample
int a = ...
int b = ...
// more code...
!

int c = a + b;
Code Sample
int a = ...
int b = ...
// more code...
!

int c = a + b;

... on wh et he r `a’
an d `b’ are re ad y
fo r proc es sing
Code Sample
int a = ...
int b = ...
// more code...
!

int c = a + b;

... on wh et he r `a’
an d `b’ are re ad y
pr loade d in
fo r i.e .oc es sing to
CP U re gis te rs
Code Sample
int a = ...
int b = ...
// more code...
!

int c = a + b;

... on wh et he r `a’
an d `b’ are re ad y
foo apr.oc es sing to
d at de
L r i.e dloaa d in
me re r y
f romCP Umogis te rs
in t o a re g is te r
!

~600 cyc le s
Code Sample
int a = ...
int b = ...
// more code...
!

int c = a + b;
Code Sample
int a = ...
int b = ...
// more code...
!

int c = a + b;
Code Sample
int a = ...
int b = ...
// more code...
!

int c = a + b;

Q : Wh at CP U is
do ing in t h e
me a n t ime?
Code Sample
int a = ...
int b = ...
// more code...
!

Q : Wh at CP U is
do ing in t h e
me a n t ime?

int c = a + b;
A: Nothing! It’s
waiting for data
Code Sample
int a = ...
int b = ...
// more code...
!

int c = a + b;
You Ask
You Ask

Can we do better?
You Ask

Can we do better?
Yes. And your hardware will help you
CPU
CPU Operation
CPU Operation
Load & decode instruction(s)
CPU Operation
Load & decode instruction(s)
Load data	

memory -> registers
CPU Operation
Load & decode instruction(s)
Load data	

memory -> registers

Execute instruction(s)
CPU Operation
Load & decode instruction(s)
Load data	

memory -> registers

Execute instruction(s)
Store results	

registers -> memory
(Not) Pipeline
cycle

pipeline stage
IL

ID

DL

EX

DS
(Not) Pipeline
cycle
1

pipeline stage
IL
instr. 1

ID

DL

EX

DS
(Not) Pipeline
cycle
1
2

pipeline stage
IL

ID

instr. 1
instr. 1

DL

EX

DS
(Not) Pipeline
cycle
1
2
3

pipeline stage
IL

ID

DL

instr. 1
instr. 1
instr. 1

EX

DS
(Not) Pipeline
cycle
1
2
3
4

pipeline stage
IL

ID

DL

EX

instr. 1
instr. 1
instr. 1
instr. 1

DS
(Not) Pipeline
cycle
1
2
3
4
5

pipeline stage
IL

ID

DL

EX

DS

instr. 1
instr. 1
instr. 1
instr. 1
instr. 1
(Not) Pipeline
cycle
1

pipeline stage
IL

DL

EX

DS

instr. 1

2

instr. 1

3

instr. 1

4

instr. 1

5
6

ID

instr. 1
instr. 2
(Not) Pipeline
cycle
1

pipeline stage
IL

ID

DS

instr. 1

3

instr. 1

4

instr. 1

5
7

EX

instr. 1

2

6

DL

instr. 1
instr. 2
instr. 2
Pipeline
cycle

pipeline stage
IL

ID

DL

EX

DS
Pipeline
cycle
1

pipeline stage
IL
instr. 1

ID

DL

EX

DS
Pipeline
cycle

pipeline stage
IL

ID

1

instr. 1

2

instr. 2 instr. 1

DL

EX

DS
Pipeline
cycle

pipeline stage
IL

ID

DL

1

instr. 1

2

instr. 2 instr. 1

3

instr. 3 instr. 2 instr. 1

EX

DS
Pipeline
cycle

pipeline stage
IL

ID

DL

EX

1

instr. 1

2

instr. 2 instr. 1

3

instr. 3 instr. 2 instr. 1

4

instr. 4 instr. 3 instr. 2 instr. 1

DS
Pipeline
cycle

pipeline stage
IL

ID

DL

EX

1

instr. 1

2

instr. 2 instr. 1

3

instr. 3 instr. 2 instr. 1

4

DS

instr. 4 instr. 3 instr. 2 instr. 1

5

instr. 4 instr. 3 instr. 2 instr. 1
Pipeline
cycle

pipeline stage
IL

ID

DL

EX

1

instr. 1

2

instr. 2 instr. 1

3

instr. 3 instr. 2 instr. 1

4

DS

instr. 4 instr. 3 instr. 2 instr. 1

5

instr. 4 instr. 3 instr. 2 instr. 1

6

instr. 4 instr. 3 instr. 2
Pipeline
cycle

pipeline stage
IL

ID

DL

EX

1

instr. 1

2

instr. 2 instr. 1

3

instr. 3 instr. 2 instr. 1

4

DS

instr. 4 instr. 3 instr. 2 instr. 1

5

instr. 4 instr. 3 instr. 2 instr. 1

6

instr. 4 instr. 3 instr. 2

7

instr. 4 instr. 3
Pipeline
cycle

pipeline stage
IL

ID

DL

EX

1

instr. 1

2

instr. 2 instr. 1

3

instr. 3 instr. 2 instr. 1

4

DS

instr. 4 instr. 3 instr. 2 instr. 1

5

instr. 4 instr. 3 instr. 2 instr. 1

6

instr. 4 instr. 3 instr. 2

7

instr. 4 instr. 3
Branch Prediction
if (day == Monday)
dose = kDouble;
else
dose = kStandard;
!

make_coffee(dose);
Branch Prediction
if (day == Monday) // 1
dose = kDouble;
// 2
else
dose = kStandard; // 3
!

make_coffee(dose);

// 4
Branch Prediction
What
if (day == Monday) // 1 <dose = kDouble;
// 2 ins tr uc tio n to
load & de co de
else
ne xt ?
dose = kStandard; // 3
!

make_coffee(dose);

// 4
Branch Prediction
What
if (day == Monday) // 1 <dose = kDouble;
// 2 ins tr ucttio n to
<- wo
load & de co de
or
else
xt ?
<-neth re e
dose = kStandard; // 3
?
!
make_coffee(dose); // 4
Branch Prediction
if (day == Monday) // 1
dose = kDouble;
// 2
else
dose = kStandard; // 3
!

make_coffee(dose);

// 4
Branch Prediction
if (day == Monday) // 1
dose = kDouble;
// 2
else
dose = kStandard; // 3
!

make_coffee(dose);

// 4
Branch Prediction
if (day == Monday)
dose = kDouble;
else
dose = kStandard;
!

make_coffee(dose);

// 1
// 2
CP U wi ll tr y to
pr 3
//edict an d st art
load & de co de
// 4
Branch Prediction
if (day == Monday)
dose = kDouble;
else
dose = kStandard;
!

make_coffee(dose);

// 1
// 2 wa s w ro ng:
If it
CPis cwi ll tr s utos,
d U a rd re y lt
pr flus p d st ar
//edicthanip e li ne t
3
load & de co de
// 4
Branch Prediction
if (day == Monday) // 1
dose = kDouble;
// 2
else
dose = kStandard; // 3
!

make_coffee(dose);

// 4
Pipeline
cycle

pipeline stage
IL

ID

DL

EX

DS
Pipeline
cycle
1

pipeline stage
IL
instr. 1

ID

DL

EX

DS
Pipeline
cycle

pipeline stage
IL

ID

1

instr. 1

2

instr. 2 instr. 1

DL

EX

DS
Pipeline
cycle

pipeline stage
IL

ID

DL

1

instr. 1

2

instr. 2 instr. 1

3

instr. 4 instr. 2 instr. 1

EX

DS
Pipeline
cycle

pipeline stage
IL

ID

DL

1

instr. 2 instr. 1

3

DS

instr. 1

2

EX

instr. 4 instr. 2 instr. 1

4

instr. 4 instr. 2 instr. 1

<- ins tr. 1
exec uted ,
predict ion
wa s co rrec t
Pipeline
cycle

pipeline stage
IL

ID

DL

1

instr. 2 instr. 1

3

DS

instr. 1

2

EX

instr. 4 instr. 2 instr. 1

4
5

instr. 4 instr. 2 instr. 1
instr. 4 instr. 2 instr. 1
Pipeline
cycle

pipeline stage
IL

ID

DL

1

instr. 2 instr. 1

3

DS

instr. 1

2

EX

instr. 4 instr. 2 instr. 1

4

instr. 4 instr. 2 instr. 1

5

instr. 4 instr. 2 instr. 1

6

instr. 4 instr. 2
Pipeline
cycle

pipeline stage
IL

ID

DL

1

instr. 2 instr. 1

3

DS

instr. 1

2

EX

instr. 4 instr. 2 instr. 1

4

instr. 4 instr. 2 instr. 1

5

instr. 4 instr. 2 instr. 1

6

instr. 4 instr. 2

7

instr. 4
Pipeline
cycle

pipeline stage
IL

ID

DL

EX

DS
Pipeline
cycle
1

pipeline stage
IL
instr. 1

ID

DL

EX

DS
Pipeline
cycle

pipeline stage
IL

ID

1

instr. 1

2

instr. 2 instr. 1

DL

EX

DS
Pipeline
cycle

pipeline stage
IL

ID

DL

1

instr. 1

2

instr. 2 instr. 1

3

instr. 4 instr. 2 instr. 1

EX

DS
Pipeline
cycle

pipeline stage
IL

ID

DL

1

instr. 2 instr. 1

3

DS

instr. 1

2

EX

instr. 4 instr. 2 instr. 1

4

instr. 4 instr. 2 instr. 1

<- ins tr. 1
exec uted , wrong
predict ion
de te cted
Pipeline
cycle

pipeline stage
IL

ID

DL

1

instr. 2 instr. 1

3

DS

instr. 1

2

EX

instr. 4 instr. 2 instr. 1

4
5

instr. 4 instr. 2 instr. 1
instr. 3

instr. 1
Pipeline
cycle

pipeline stage
IL

ID

DL

1

instr. 2 instr. 1

3

DS

instr. 1

2

EX

instr. 4 instr. 2 instr. 1

4

instr. 4 instr. 2 instr. 1

5

instr. 3

6

instr. 4 instr. 3

instr. 1
Pipeline
cycle

pipeline stage
IL

ID

DL

1

instr. 2 instr. 1

3

DS

instr. 1

2

EX

instr. 4 instr. 2 instr. 1

4

instr. 4 instr. 2 instr. 1

5

instr. 3

6

instr. 4 instr. 3

7

instr. 1
instr. 4 instr. 3
Takeaways
Takeaways

Branches are bad for the pipeline
Takeaways

Branches are bad for the pipeline
Avoid if possible
Takeaways

Branches are bad for the pipeline
Avoid if possible
Help branch predictor to help you
Memory
Workflow
Workflow

Program data is stored in memory
Workflow

Program data is stored in memory
CPU requests data for processing
Workflow

Program data is stored in memory
CPU requests data for processing
Typical cycle: load, process, store
Architecture

CPU

Memory
Controller

Memory	

Banks
Architecture

CPU

Memory
Controller

Memory	

Banks
Architecture

CPU

Memory
Controller

Memory	

Banks
Architecture

CPU

Memory
Controller

Memory	

Banks
Architecture

CPU

Memory
Controller

Memory	

Banks
Parameters
Parameters

There are two main parameters of
memory subsystem:
Parameters

There are two main parameters of
memory subsystem:
latency
Parameters

There are two main parameters of
memory subsystem:
latency
bandwidth
Latency
Latency

Shows how much time passes between
data request and its delivery
Latency

Shows how much time passes between
data request and its delivery
Very important concept (see further)
Bandwidth
Bandwidth

Shows how much data can be
accessed per second
Bandwidth

Shows how much data can be
accessed per second
Also important
History Lesson
VAX-11 (1980)

Modern Desktop

Improvement

Clock Speed, Mhz

6

3000

+500x

Memory Size, MB

2

2000

+1000x

Memory
Bandwidth, MB/s

13

7000

+540x

Memory Latency,
ns

225

70

+3x

Memory Latency,
cycles

1.4

210

-150x

Data from “Machine Architecture” talk by Herb Sutter
History Lesson
History Lesson

For the past 30+ years we saw huge
improvements in CPU processing power
and data sizes
History Lesson

For the past 30+ years we saw huge
improvements in CPU processing power
and data sizes ... b u t
History Lesson

For the past 30+ years we saw huge
improvements in CPU processing power
and data sizes
Memory speeds couldn’t keep up with the
progress
Takeaways
Takeaways

Latency is the king!
Takeaways

Latency is the king!
You can trade CPU time for memory, i.e.
calculate more - load/store less
Memory types
Memory types

There are two main memory types:
Memory types

There are two main memory types:
Static RAM - fast, but very expensive
Memory types

There are two main memory types:
Static RAM - fast, but very expensive
Dynamic RAM - slow, but cheaper
Memory types

There are two main memory types:
W - h one but very expensive
Static RAM hicfast, to use?

Dynamic RAM - slow, but cheaper
Memory types

There are two main memory types:
Static RAM - fast, but very expensive
Dynamic RAM - slow, but cheaper
Solution
Solution

Build memory hierarchy which utilizes
large amounts of cheap DRAM storage
and small amounts of fast SRAM cache
Memory Hierarchy

L1i/L1d

L2 Cache

Memory
Memory Hierarchy

iPh one 4s:
!

32KB L1i
32KB L1d
1 MB L2
512 MB DR AM

L1i/L1d

L2 Cache

Memory
Memory Hierarchy

iPh one 4s:
!

32KB L1i
32KB L1d
1 MB L2
512 MB DR AM

A c c e s s:
L1i/L1d

L2 Cache

Memory

!

re g is te rs - 1 cyc le
L1 - 5 cyc le s
L2 - 40 cyc le s
DR AM - 610
Memory Hierarchy

L1i/L1d

L2 Cache

Memory
Cache Miss
Cache Miss

If data requested by CPU is not in the
cache it has to be loaded from the main
(slow) memory
Cache Line
Cache Line

Minimum amount of data that can be
read from and written to memory
Cache Line

Minimum amount of data that can be
read from and written to memory
Usually 64-128 bytes
Cache Line
Cache Line
What does it mean?
Cache Line
What does it mean?
Consider you have an array of 16 floats
and you want the first float for
calculations
Cache Line
What does it mean?
Consider you have an array of 16 floats
and you want the first float for
calculations
If it’s not in cache already, you will pay
the “full price” to load entire cache line
Cache Line
What does it mean?
Consider you have an array of 16 floats
and you want the first float for
calculations
If it’s not in cache already, you will pay
the “full price” to load entire cache line
Access remaining 15 floats “for free”
Prefetch
Prefetch
Modern CPUs and compilers are able to
detect memory access patterns and
preload data in caches speculatively
Prefetch
Modern CPUs and compilers are able to
detect memory access patterns and
preload data in caches speculatively
So, data will be ready when you need it
Prefetch
Modern CPUs and compilers are able to
detect memory access patterns and
preload data in caches speculatively
So, data will be ready when you need it
But your data access patterns must be
very simple - linear is a good one
Prefetch
Modern CPUs and compilers are able to
detect memory access+patterns and
BT W, C+
p e rat o rocaches> speculatively
preload data in
t ime s
s ome
e r re d t a s
re freadyowhen you need it
So, data will be
“c ach e m is s”
ope rat o r
But your data access patterns must be

very simple - linear is a good one
Prefetch
Modern CPUs and compilers are able to
detect memory access+patterns and
BT W, C+
p e rat o rocaches> speculatively
preload data in Can tyimue gue s s
o s
s ome w
h y? s
e r re d t a
re freadyowhen you need it
So, data will be
“c ach e m is s”
ope rat o r
But your data access patterns must be

very simple - linear is a good one
Prefetch
Modern CPUs and compilers are able to
detect memory access patterns and
preload data in caches speculatively
So, data will be ready when you need it
But your data access patterns must be
very simple - linear is a good one
How to Create a Good Program?
Simple
Simple

Know your target hardware
Simple

Know your target hardware
Know your data
Simple

Know your target hardware
Know your data
Use your brain
One More Thing...
One More Thing...

Data-Oriented Design
Thank You!
Questions?
References
Ulrich Drepper, “What Every
Programmer Should Know About
Memory”	

Крис Касперски, “Техника
оптимизации программ. Еффективное
использование памяти”	

@mike_acton

Weitere ähnliche Inhalte

Andere mochten auch

UCF University Writing Center
UCF University Writing Center UCF University Writing Center
UCF University Writing Center brobjr18
 
Rolls royce 2010
Rolls royce 2010Rolls royce 2010
Rolls royce 2010Pac526
 
CISShanghai
CISShanghaiCISShanghai
CISShanghaibmaddick
 
영수증으로 하는 사랑나눔
영수증으로 하는 사랑나눔영수증으로 하는 사랑나눔
영수증으로 하는 사랑나눔Yun Jeong Jang
 
Iq' rum buku tulis
Iq' rum buku tulisIq' rum buku tulis
Iq' rum buku tulisShika Nara
 
โรงเรียนบ้านบ่อหลวง
โรงเรียนบ้านบ่อหลวงโรงเรียนบ้านบ่อหลวง
โรงเรียนบ้านบ่อหลวงSroypret Na Nan
 
Webpage announcement v-no_june
Webpage announcement v-no_juneWebpage announcement v-no_june
Webpage announcement v-no_junemjhjason
 
Grain Creative on Branding, from the Hidden Art Forum 2011
Grain Creative on Branding, from the Hidden Art Forum 2011Grain Creative on Branding, from the Hidden Art Forum 2011
Grain Creative on Branding, from the Hidden Art Forum 2011Hidden Art
 
Charlotte Sale on her experiences on 'Britain's Next Big Thing', from the Hid...
Charlotte Sale on her experiences on 'Britain's Next Big Thing', from the Hid...Charlotte Sale on her experiences on 'Britain's Next Big Thing', from the Hid...
Charlotte Sale on her experiences on 'Britain's Next Big Thing', from the Hid...Hidden Art
 
Yourprezi
YourpreziYourprezi
Yourprezi500sam
 
2009 q3 md&a & interim financial statements
2009 q3 md&a & interim financial statements2009 q3 md&a & interim financial statements
2009 q3 md&a & interim financial statementsProphecy Corp
 
Eberhart Designers Catalog 07 2011 3
Eberhart Designers Catalog 07 2011 3Eberhart Designers Catalog 07 2011 3
Eberhart Designers Catalog 07 2011 3Fred Eberhart
 
โรงเรียนบ้านบ่อหลวง
โรงเรียนบ้านบ่อหลวงโรงเรียนบ้านบ่อหลวง
โรงเรียนบ้านบ่อหลวงSroypret Na Nan
 
Super-Max World
Super-Max WorldSuper-Max World
Super-Max Worlddsnigel5
 

Andere mochten auch (20)

UCF University Writing Center
UCF University Writing Center UCF University Writing Center
UCF University Writing Center
 
Minuta
MinutaMinuta
Minuta
 
Rolls royce 2010
Rolls royce 2010Rolls royce 2010
Rolls royce 2010
 
CISShanghai
CISShanghaiCISShanghai
CISShanghai
 
영수증으로 하는 사랑나눔
영수증으로 하는 사랑나눔영수증으로 하는 사랑나눔
영수증으로 하는 사랑나눔
 
Iq' rum buku tulis
Iq' rum buku tulisIq' rum buku tulis
Iq' rum buku tulis
 
Mulheres que inspiram
Mulheres que inspiramMulheres que inspiram
Mulheres que inspiram
 
โรงเรียนบ้านบ่อหลวง
โรงเรียนบ้านบ่อหลวงโรงเรียนบ้านบ่อหลวง
โรงเรียนบ้านบ่อหลวง
 
Webpage announcement v-no_june
Webpage announcement v-no_juneWebpage announcement v-no_june
Webpage announcement v-no_june
 
Grain Creative on Branding, from the Hidden Art Forum 2011
Grain Creative on Branding, from the Hidden Art Forum 2011Grain Creative on Branding, from the Hidden Art Forum 2011
Grain Creative on Branding, from the Hidden Art Forum 2011
 
Austria, country of castles
Austria, country of castlesAustria, country of castles
Austria, country of castles
 
Charlotte Sale on her experiences on 'Britain's Next Big Thing', from the Hid...
Charlotte Sale on her experiences on 'Britain's Next Big Thing', from the Hid...Charlotte Sale on her experiences on 'Britain's Next Big Thing', from the Hid...
Charlotte Sale on her experiences on 'Britain's Next Big Thing', from the Hid...
 
Yourprezi
YourpreziYourprezi
Yourprezi
 
2009 q3 md&a & interim financial statements
2009 q3 md&a & interim financial statements2009 q3 md&a & interim financial statements
2009 q3 md&a & interim financial statements
 
Sarangi 2
Sarangi 2Sarangi 2
Sarangi 2
 
Eberhart Designers Catalog 07 2011 3
Eberhart Designers Catalog 07 2011 3Eberhart Designers Catalog 07 2011 3
Eberhart Designers Catalog 07 2011 3
 
โรงเรียนบ้านบ่อหลวง
โรงเรียนบ้านบ่อหลวงโรงเรียนบ้านบ่อหลวง
โรงเรียนบ้านบ่อหลวง
 
Wiladuras instruqcia
Wiladuras instruqciaWiladuras instruqcia
Wiladuras instruqcia
 
Super-Max World
Super-Max WorldSuper-Max World
Super-Max World
 
Zb a z
Zb a zZb a z
Zb a z
 

Ähnlich wie Talk About Performance

Performance #5 cpu and battery
Performance #5  cpu and batteryPerformance #5  cpu and battery
Performance #5 cpu and batteryVitali Pekelis
 
Arduino programming of ML-style in ATS
Arduino programming of ML-style in ATSArduino programming of ML-style in ATS
Arduino programming of ML-style in ATSKiwamu Okabe
 
Build 2016 - B880 - Top 6 Reasons to Move Your C++ Code to Visual Studio 2015
Build 2016 - B880 - Top 6 Reasons to Move Your C++ Code to Visual Studio 2015Build 2016 - B880 - Top 6 Reasons to Move Your C++ Code to Visual Studio 2015
Build 2016 - B880 - Top 6 Reasons to Move Your C++ Code to Visual Studio 2015Windows Developer
 
Begin with c++ Fekra Course #1
Begin with c++ Fekra Course #1Begin with c++ Fekra Course #1
Begin with c++ Fekra Course #1Amr Alaa El Deen
 
Testing with Docker
Testing with DockerTesting with Docker
Testing with Dockertoffermann
 
ECET 330 Massive Success--snaptutorial.com
ECET 330 Massive Success--snaptutorial.comECET 330 Massive Success--snaptutorial.com
ECET 330 Massive Success--snaptutorial.comsantricksapiens71
 
Ecet 330 Success Begins / snaptutorial.com
Ecet 330 Success Begins / snaptutorial.comEcet 330 Success Begins / snaptutorial.com
Ecet 330 Success Begins / snaptutorial.comWilliamsTaylorzm
 
Ecet 330 Enthusiastic Study / snaptutorial.com
Ecet 330 Enthusiastic Study / snaptutorial.comEcet 330 Enthusiastic Study / snaptutorial.com
Ecet 330 Enthusiastic Study / snaptutorial.comStephenson033
 
ECET 330 Technology levels--snaptutorial.com
ECET 330 Technology levels--snaptutorial.comECET 330 Technology levels--snaptutorial.com
ECET 330 Technology levels--snaptutorial.comsholingarjosh102
 
2019 session 5 describe different basic programming codes and languages
2019 session 5 describe different basic programming codes and languages2019 session 5 describe different basic programming codes and languages
2019 session 5 describe different basic programming codes and languagesOsama Ghandour Geris
 
Complete c programming presentation
Complete c programming presentationComplete c programming presentation
Complete c programming presentationnadim akber
 
Introduction to c programming
Introduction to c programmingIntroduction to c programming
Introduction to c programmingAlpana Gupta
 
Blackfin Loop Asm
Blackfin Loop AsmBlackfin Loop Asm
Blackfin Loop AsmAdithya Rao
 
Apidays Paris 2023 - Forget TypeScript, Choose Rust to build Robust, Fast and...
Apidays Paris 2023 - Forget TypeScript, Choose Rust to build Robust, Fast and...Apidays Paris 2023 - Forget TypeScript, Choose Rust to build Robust, Fast and...
Apidays Paris 2023 - Forget TypeScript, Choose Rust to build Robust, Fast and...apidays
 
Devry cis-170-c-i lab-5-of-7-arrays-and-strings
Devry cis-170-c-i lab-5-of-7-arrays-and-stringsDevry cis-170-c-i lab-5-of-7-arrays-and-strings
Devry cis-170-c-i lab-5-of-7-arrays-and-stringsnoahjamessss
 
Devry cis-170-c-i lab-5-of-7-arrays-and-strings
Devry cis-170-c-i lab-5-of-7-arrays-and-stringsDevry cis-170-c-i lab-5-of-7-arrays-and-strings
Devry cis-170-c-i lab-5-of-7-arrays-and-stringscskvsmi44
 
PVS-Studio delved into the FreeBSD kernel
PVS-Studio delved into the FreeBSD kernelPVS-Studio delved into the FreeBSD kernel
PVS-Studio delved into the FreeBSD kernelPVS-Studio
 
Vlsi lab manual_new
Vlsi lab manual_newVlsi lab manual_new
Vlsi lab manual_newNaveen Gouda
 

Ähnlich wie Talk About Performance (20)

Performance #5 cpu and battery
Performance #5  cpu and batteryPerformance #5  cpu and battery
Performance #5 cpu and battery
 
Arduino programming of ML-style in ATS
Arduino programming of ML-style in ATSArduino programming of ML-style in ATS
Arduino programming of ML-style in ATS
 
Build 2016 - B880 - Top 6 Reasons to Move Your C++ Code to Visual Studio 2015
Build 2016 - B880 - Top 6 Reasons to Move Your C++ Code to Visual Studio 2015Build 2016 - B880 - Top 6 Reasons to Move Your C++ Code to Visual Studio 2015
Build 2016 - B880 - Top 6 Reasons to Move Your C++ Code to Visual Studio 2015
 
Begin with c++ Fekra Course #1
Begin with c++ Fekra Course #1Begin with c++ Fekra Course #1
Begin with c++ Fekra Course #1
 
Testing with Docker
Testing with DockerTesting with Docker
Testing with Docker
 
ECET 330 Massive Success--snaptutorial.com
ECET 330 Massive Success--snaptutorial.comECET 330 Massive Success--snaptutorial.com
ECET 330 Massive Success--snaptutorial.com
 
Ecet 330 Success Begins / snaptutorial.com
Ecet 330 Success Begins / snaptutorial.comEcet 330 Success Begins / snaptutorial.com
Ecet 330 Success Begins / snaptutorial.com
 
Ecet 330 Enthusiastic Study / snaptutorial.com
Ecet 330 Enthusiastic Study / snaptutorial.comEcet 330 Enthusiastic Study / snaptutorial.com
Ecet 330 Enthusiastic Study / snaptutorial.com
 
ECET 330 Technology levels--snaptutorial.com
ECET 330 Technology levels--snaptutorial.comECET 330 Technology levels--snaptutorial.com
ECET 330 Technology levels--snaptutorial.com
 
2019 session 5 describe different basic programming codes and languages
2019 session 5 describe different basic programming codes and languages2019 session 5 describe different basic programming codes and languages
2019 session 5 describe different basic programming codes and languages
 
Complete c programming presentation
Complete c programming presentationComplete c programming presentation
Complete c programming presentation
 
Introduction to c programming
Introduction to c programmingIntroduction to c programming
Introduction to c programming
 
Blackfin Loop Asm
Blackfin Loop AsmBlackfin Loop Asm
Blackfin Loop Asm
 
Apidays Paris 2023 - Forget TypeScript, Choose Rust to build Robust, Fast and...
Apidays Paris 2023 - Forget TypeScript, Choose Rust to build Robust, Fast and...Apidays Paris 2023 - Forget TypeScript, Choose Rust to build Robust, Fast and...
Apidays Paris 2023 - Forget TypeScript, Choose Rust to build Robust, Fast and...
 
Devry cis-170-c-i lab-5-of-7-arrays-and-strings
Devry cis-170-c-i lab-5-of-7-arrays-and-stringsDevry cis-170-c-i lab-5-of-7-arrays-and-strings
Devry cis-170-c-i lab-5-of-7-arrays-and-strings
 
Devry cis-170-c-i lab-5-of-7-arrays-and-strings
Devry cis-170-c-i lab-5-of-7-arrays-and-stringsDevry cis-170-c-i lab-5-of-7-arrays-and-strings
Devry cis-170-c-i lab-5-of-7-arrays-and-strings
 
Lec-1c.pdf
Lec-1c.pdfLec-1c.pdf
Lec-1c.pdf
 
Lecture1
Lecture1Lecture1
Lecture1
 
PVS-Studio delved into the FreeBSD kernel
PVS-Studio delved into the FreeBSD kernelPVS-Studio delved into the FreeBSD kernel
PVS-Studio delved into the FreeBSD kernel
 
Vlsi lab manual_new
Vlsi lab manual_newVlsi lab manual_new
Vlsi lab manual_new
 

Kürzlich hochgeladen

Bridge to the Future: Migrating to KRaft
Bridge to the Future: Migrating to KRaftBridge to the Future: Migrating to KRaft
Bridge to the Future: Migrating to KRaftHostedbyConfluent
 
Mastering Kafka Producer Configs: A Guide to Optimizing Performance
Mastering Kafka Producer Configs: A Guide to Optimizing PerformanceMastering Kafka Producer Configs: A Guide to Optimizing Performance
Mastering Kafka Producer Configs: A Guide to Optimizing PerformanceHostedbyConfluent
 
CERN IoT Kafka Pipelines | Kafka Summit London
CERN IoT Kafka Pipelines | Kafka Summit LondonCERN IoT Kafka Pipelines | Kafka Summit London
CERN IoT Kafka Pipelines | Kafka Summit LondonHostedbyConfluent
 
Transcript: Green paths: Learning from publishers’ sustainability journeys - ...
Transcript: Green paths: Learning from publishers’ sustainability journeys - ...Transcript: Green paths: Learning from publishers’ sustainability journeys - ...
Transcript: Green paths: Learning from publishers’ sustainability journeys - ...BookNet Canada
 
Build Copilots on Streaming Data with Generative AI, Kafka Streams and Flink SQL
Build Copilots on Streaming Data with Generative AI, Kafka Streams and Flink SQLBuild Copilots on Streaming Data with Generative AI, Kafka Streams and Flink SQL
Build Copilots on Streaming Data with Generative AI, Kafka Streams and Flink SQLHostedbyConfluent
 
Bitdefender-CSG-Report-creat7534-interactive
Bitdefender-CSG-Report-creat7534-interactiveBitdefender-CSG-Report-creat7534-interactive
Bitdefender-CSG-Report-creat7534-interactivestartupro
 
🎶🎵Bo-stream-ian Rhapsody: A Musical Demo of Kafka Connect and Kafka Streams 🎵🎶
🎶🎵Bo-stream-ian Rhapsody: A Musical Demo of Kafka Connect and Kafka Streams 🎵🎶🎶🎵Bo-stream-ian Rhapsody: A Musical Demo of Kafka Connect and Kafka Streams 🎵🎶
🎶🎵Bo-stream-ian Rhapsody: A Musical Demo of Kafka Connect and Kafka Streams 🎵🎶HostedbyConfluent
 
Automation Ops Series: Session 3 - Solutions management
Automation Ops Series: Session 3 - Solutions managementAutomation Ops Series: Session 3 - Solutions management
Automation Ops Series: Session 3 - Solutions managementDianaGray10
 
Data Contracts In Practice With Debezium and Apache Flink
Data Contracts In Practice With Debezium and Apache FlinkData Contracts In Practice With Debezium and Apache Flink
Data Contracts In Practice With Debezium and Apache FlinkHostedbyConfluent
 
Beyond Tiered Storage: Serverless Kafka with No Local Disks
Beyond Tiered Storage: Serverless Kafka with No Local DisksBeyond Tiered Storage: Serverless Kafka with No Local Disks
Beyond Tiered Storage: Serverless Kafka with No Local DisksHostedbyConfluent
 
The Streaming Data Lake - What Do KIP-405 and KIP-833 Mean for Your Larger Da...
The Streaming Data Lake - What Do KIP-405 and KIP-833 Mean for Your Larger Da...The Streaming Data Lake - What Do KIP-405 and KIP-833 Mean for Your Larger Da...
The Streaming Data Lake - What Do KIP-405 and KIP-833 Mean for Your Larger Da...HostedbyConfluent
 
Data Contracts Management: Schema Registry and Beyond
Data Contracts Management: Schema Registry and BeyondData Contracts Management: Schema Registry and Beyond
Data Contracts Management: Schema Registry and BeyondHostedbyConfluent
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentMahmoud Rabie
 
BODYPACK DIGITAL TECHNOLOGY STACK - 2024
BODYPACK DIGITAL TECHNOLOGY STACK - 2024BODYPACK DIGITAL TECHNOLOGY STACK - 2024
BODYPACK DIGITAL TECHNOLOGY STACK - 2024Andri H.
 
Apache Kafka's Common Pitfalls & Intricacies: A Customer Support Perspective
Apache Kafka's Common Pitfalls & Intricacies: A Customer Support PerspectiveApache Kafka's Common Pitfalls & Intricacies: A Customer Support Perspective
Apache Kafka's Common Pitfalls & Intricacies: A Customer Support PerspectiveHostedbyConfluent
 
Mastering Kafka Consumer Distribution: A Guide to Efficient Scaling and Resou...
Mastering Kafka Consumer Distribution: A Guide to Efficient Scaling and Resou...Mastering Kafka Consumer Distribution: A Guide to Efficient Scaling and Resou...
Mastering Kafka Consumer Distribution: A Guide to Efficient Scaling and Resou...HostedbyConfluent
 
Transcript: Book industry state of the nation 2024 - Tech Forum 2024
Transcript: Book industry state of the nation 2024 - Tech Forum 2024Transcript: Book industry state of the nation 2024 - Tech Forum 2024
Transcript: Book industry state of the nation 2024 - Tech Forum 2024BookNet Canada
 
DS Lesson 2 - Subsets, Supersets and Power Set.pdf
DS Lesson 2 - Subsets, Supersets and Power Set.pdfDS Lesson 2 - Subsets, Supersets and Power Set.pdf
DS Lesson 2 - Subsets, Supersets and Power Set.pdfROWELL MARQUINA
 
Event-Driven Microservices: Back to the Basics
Event-Driven Microservices: Back to the BasicsEvent-Driven Microservices: Back to the Basics
Event-Driven Microservices: Back to the BasicsHostedbyConfluent
 
Error Handling with Kafka: From Patterns to Code
Error Handling with Kafka: From Patterns to CodeError Handling with Kafka: From Patterns to Code
Error Handling with Kafka: From Patterns to CodeHostedbyConfluent
 

Kürzlich hochgeladen (20)

Bridge to the Future: Migrating to KRaft
Bridge to the Future: Migrating to KRaftBridge to the Future: Migrating to KRaft
Bridge to the Future: Migrating to KRaft
 
Mastering Kafka Producer Configs: A Guide to Optimizing Performance
Mastering Kafka Producer Configs: A Guide to Optimizing PerformanceMastering Kafka Producer Configs: A Guide to Optimizing Performance
Mastering Kafka Producer Configs: A Guide to Optimizing Performance
 
CERN IoT Kafka Pipelines | Kafka Summit London
CERN IoT Kafka Pipelines | Kafka Summit LondonCERN IoT Kafka Pipelines | Kafka Summit London
CERN IoT Kafka Pipelines | Kafka Summit London
 
Transcript: Green paths: Learning from publishers’ sustainability journeys - ...
Transcript: Green paths: Learning from publishers’ sustainability journeys - ...Transcript: Green paths: Learning from publishers’ sustainability journeys - ...
Transcript: Green paths: Learning from publishers’ sustainability journeys - ...
 
Build Copilots on Streaming Data with Generative AI, Kafka Streams and Flink SQL
Build Copilots on Streaming Data with Generative AI, Kafka Streams and Flink SQLBuild Copilots on Streaming Data with Generative AI, Kafka Streams and Flink SQL
Build Copilots on Streaming Data with Generative AI, Kafka Streams and Flink SQL
 
Bitdefender-CSG-Report-creat7534-interactive
Bitdefender-CSG-Report-creat7534-interactiveBitdefender-CSG-Report-creat7534-interactive
Bitdefender-CSG-Report-creat7534-interactive
 
🎶🎵Bo-stream-ian Rhapsody: A Musical Demo of Kafka Connect and Kafka Streams 🎵🎶
🎶🎵Bo-stream-ian Rhapsody: A Musical Demo of Kafka Connect and Kafka Streams 🎵🎶🎶🎵Bo-stream-ian Rhapsody: A Musical Demo of Kafka Connect and Kafka Streams 🎵🎶
🎶🎵Bo-stream-ian Rhapsody: A Musical Demo of Kafka Connect and Kafka Streams 🎵🎶
 
Automation Ops Series: Session 3 - Solutions management
Automation Ops Series: Session 3 - Solutions managementAutomation Ops Series: Session 3 - Solutions management
Automation Ops Series: Session 3 - Solutions management
 
Data Contracts In Practice With Debezium and Apache Flink
Data Contracts In Practice With Debezium and Apache FlinkData Contracts In Practice With Debezium and Apache Flink
Data Contracts In Practice With Debezium and Apache Flink
 
Beyond Tiered Storage: Serverless Kafka with No Local Disks
Beyond Tiered Storage: Serverless Kafka with No Local DisksBeyond Tiered Storage: Serverless Kafka with No Local Disks
Beyond Tiered Storage: Serverless Kafka with No Local Disks
 
The Streaming Data Lake - What Do KIP-405 and KIP-833 Mean for Your Larger Da...
The Streaming Data Lake - What Do KIP-405 and KIP-833 Mean for Your Larger Da...The Streaming Data Lake - What Do KIP-405 and KIP-833 Mean for Your Larger Da...
The Streaming Data Lake - What Do KIP-405 and KIP-833 Mean for Your Larger Da...
 
Data Contracts Management: Schema Registry and Beyond
Data Contracts Management: Schema Registry and BeyondData Contracts Management: Schema Registry and Beyond
Data Contracts Management: Schema Registry and Beyond
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career Development
 
BODYPACK DIGITAL TECHNOLOGY STACK - 2024
BODYPACK DIGITAL TECHNOLOGY STACK - 2024BODYPACK DIGITAL TECHNOLOGY STACK - 2024
BODYPACK DIGITAL TECHNOLOGY STACK - 2024
 
Apache Kafka's Common Pitfalls & Intricacies: A Customer Support Perspective
Apache Kafka's Common Pitfalls & Intricacies: A Customer Support PerspectiveApache Kafka's Common Pitfalls & Intricacies: A Customer Support Perspective
Apache Kafka's Common Pitfalls & Intricacies: A Customer Support Perspective
 
Mastering Kafka Consumer Distribution: A Guide to Efficient Scaling and Resou...
Mastering Kafka Consumer Distribution: A Guide to Efficient Scaling and Resou...Mastering Kafka Consumer Distribution: A Guide to Efficient Scaling and Resou...
Mastering Kafka Consumer Distribution: A Guide to Efficient Scaling and Resou...
 
Transcript: Book industry state of the nation 2024 - Tech Forum 2024
Transcript: Book industry state of the nation 2024 - Tech Forum 2024Transcript: Book industry state of the nation 2024 - Tech Forum 2024
Transcript: Book industry state of the nation 2024 - Tech Forum 2024
 
DS Lesson 2 - Subsets, Supersets and Power Set.pdf
DS Lesson 2 - Subsets, Supersets and Power Set.pdfDS Lesson 2 - Subsets, Supersets and Power Set.pdf
DS Lesson 2 - Subsets, Supersets and Power Set.pdf
 
Event-Driven Microservices: Back to the Basics
Event-Driven Microservices: Back to the BasicsEvent-Driven Microservices: Back to the Basics
Event-Driven Microservices: Back to the Basics
 
Error Handling with Kafka: From Patterns to Code
Error Handling with Kafka: From Patterns to CodeError Handling with Kafka: From Patterns to Code
Error Handling with Kafka: From Patterns to Code
 

Talk About Performance