SlideShare une entreprise Scribd logo
1  sur  59
Télécharger pour lire hors ligne
by risou
at YAPC::Kansai 2017 Osaka
▸ risou
▸ ID "risouf"
▸
▸ 🤔
▸
▸ 🙏
▸
▸ Web
▸
▸
▸
▸ 10
▸ 10 ……
▸
▸ 10 5
▸
A
3h
B
1h
C
0.5h
D
1h
E
2h
F
1h
G
4h
H
2h
▸
A
3h
B
1h
C
0.5h
D
1h
E
2h
F
1h
G
4h
H
2h
▸
▸ 

▸
▸
▸
▸
▸ Web
▸
▸
▸
▸
▸ 1
▸
my @primes = ();
for my $num (2 .. 100_000) {
if ($num == 2) {
push @primes, $num;
next;
}
my $is_prime = 1;
for (2 .. $num - 1) {
if ($num % $_ == 0) {
$is_prime = 0;
}
}
if ($is_prime == 1) {
push @primes, $num;
}
}
▸ 366.103 sec
▸ oh...
▸ 10 6
▸
▸
▸ 10
▸ 50
▸
▸
▸
▸ 

1 2 - 1 

▸ 

my @primes = ();
for my $num (2 .. 100_000) {
if ($num == 2) {
push @primes, $num;
next;
}
my $is_prime = 1;
for (2 .. $num - 1) {
if ($num % $_ == 0) {
$is_prime = 0;
last;
}
}
if ($is_prime == 1) {
push @primes, $num;
}
}
▸ 31.404 sec
▸ 1/10
▸ 5
▸ 2 

25
▸
▸
my @primes = ();
for my $num (2 .. 100_000) {
if ($num == 2) {
push @primes, $num;
next;
}
my $is_prime = 1;
for (@primes) {
if ($num % $_ == 0) {
$is_prime = 0;
last;
}
}
if ($is_prime == 1) {
push @primes, $num;
}
}
▸
▸
▸ 4 = 2 x 2 60 = 2 x 2 x 3 x 5
▸ 4 2 

60 2 3 5
▸ @primes
▸
▸ 

@primes
▸ 3.191 sec
▸ 1/10
▸ ……
▸
▸
▸ 91 7 13
▸ 91 13
▸ 91 13
▸ N 

√N
▸ 91 9.53...
▸ 2 9 10 90
▸ √N
my @primes = ();
for my $num (2 .. 100_000) {
if ($num == 2) {
push @primes, $num;
next;
}
my $is_prime = 1;
for (@primes) {
last if $_ > sqrt($num);
if ($num % $_ == 0) {
$is_prime = 0;
last;
}
}
if ($is_prime == 1) {
push @primes, $num;
}
}
▸ 0.126 sec
▸ 1
▸ 1/3000
……
▸
my @primes = ();
for my $num (2 .. 100_000) {
if ($num == 2) {
push @primes, $num;
next;
}
my $is_prime = 1;
for (@primes) {
last if $_ > sqrt($num);
if ($num % $_ == 0) {
$is_prime = 0;
last;
}
}
if ($is_prime == 1) {
push @primes, $num;
}
}
▸ 2
▸ 2
▸ 2 

▸
▸
my @numbers = (1) x 100_001;
$numbers[0] = 0;
$numbers[1] = 0;
for my $num (2 .. sqrt(100_000)) {
if ($numbers[$num]) {
for (2 .. (100_000 / $num)) {
$numbers[$num * $_] = 0;
}
}
}
▸ 0.026 sec
▸ ……
▸
▸
▸
▸ 

▸
▸
▸
▸
▸ 

▸ memoization ( not memonization )
▸ 

▸
▸ 

▸
# normal
sub fib {
my $number = shift;
return 1 if $number == 1 || $number == 2;
return fib($number - 1) + fib($number - 2);
}
# memoize
my %memo;
sub fib {
my $number = shift;
return 1 if $number == 1 || $number == 2;
return $memo{$number} if $memo{$number};
$memo{$number} = fib($number - 1) + fib($number - 2);
return $memo{$number};
}
▸ 30
▸ normal: 545.545 msec / memoize: 0.114 msec
▸
▸ is_prime
▸ is_prime 

▸ Perl
▸ Memoise
▸ normal memoize('fib');
▸
▸
▸ Memoise 30 18.654 msec
▸
▸
▸
▸ Memoise
List::Compare
▸ 2
▸
▸
List::Compare
▸ 10
▸
▸ List::Compare get_Lonly
List::Compare
▸ List::Compare
# List::Compare
my $lc = List::Compare->new(@primes, @fibs);
my @left_only = $lc->get_Lonly;
# normal
my %exists;
%exists = map { $_ => 1 } @primes;
for (@fibs) {
$exists{$_} = 0 if ($exists{$_});
}
my @left_only = grep { $exists{$_} == 1 } keys %exists;
List::Compare
▸ List::Compare: 35.733 msec / normal: 17.769 msec
▸ List::Compare 

1 List::Compare
▸ List::Compare new
▸ 

▸ 

▸ 

▸ 1
▸ push join 

# push -> join
my @str;
for (1 .. 1_000_000) {
push @str, "The quick brown fox jumps over the lazy dog.";
}
my $result = join "", @str;
# concat
my $result;
for (1 .. 1_000_000) {
$result .= "The quick brown fox jumps over the lazy dog.";
}
▸
▸ 

# multiple 2, 4 times
my @numbers;
for (1 .. 100_000_000) {
push @numbers, $_ * 2 * 2 * 2 * 2;
}
# multiple 16, 1 time
my @numbers;
for (1 .. 100_000_000) {
push @numbers, $_ * 16;
}
▸
▸
# function in loop
sub sum {
my ($x, $y) = @_;
return $x + $y;
}
my $total = 0;
for (1 .. 1_000_000) {
$total = sum($total, $_);
}
# loop in function
sub sum_list {
my ($list) = @_;
my $result;
for (@$list) {
$result += $_;
}
return $result;
}
my $total = sum_list([1 .. 1_000_000]);
▸ Function in Loop: 360.701 msec
▸ Loop in Function: 94.884 msec
▸ 

Function in Loop
▸
Struct of Arrays
▸
▸ Perl
▸ Struct of Arrays (SoA) Array of Structs (AoS)
▸ AoS
▸ 

SoA
Struct of Arrays
▸ SoA AoS Clone
# Array of Structs
my $aos = [];
for (1 .. 100_000) {
push @$aos, { number => $_, double => $_ * 2 };
}
my $copy = clone($aos);
# Struct of Arrays
my $soa = {};
my @numbers;
my @doubles;
my $count;
for (1 .. 100_000) {
push @numbers, $_;
push @doubles, $_ * 2;
}
$soa = { number => @numbers, double => @doubles };
my $copy = clone($soa);
Struct of Arrays
▸ AoS: 640.302 msec / SoA: 215.323 msec
▸ SoA Clone
▸
▸ AoS: 24,800,144 bytes / SoA: 6,400,424 bytes
▸
▸ ……
▸
▸ DB ……
▸
▸
▸
▸ 

▸ NYTProf
▸ DB
▸
▸
▸ DB/KVS
▸
▸
▸ CDN
▸ DB
▸
▸
▸ DB 

▸
▸
▸
▸
▸
▸
▸
▸
▸
▸
▸
▸
▸
▸
▸
▸
▸
▸
▸

Contenu connexe

Tendances

The groovy puzzlers (as Presented at JavaOne 2014)
The groovy puzzlers (as Presented at JavaOne 2014)The groovy puzzlers (as Presented at JavaOne 2014)
The groovy puzzlers (as Presented at JavaOne 2014)
GroovyPuzzlers
 
Palestra sobre Collections com Python
Palestra sobre Collections com PythonPalestra sobre Collections com Python
Palestra sobre Collections com Python
pugpe
 
الجلسة الأولى
الجلسة الأولىالجلسة الأولى
الجلسة الأولى
Yaman Rajab
 
Advance Techniques In Php
Advance Techniques In PhpAdvance Techniques In Php
Advance Techniques In Php
Kumar S
 

Tendances (20)

Programvba
ProgramvbaProgramvba
Programvba
 
The groovy puzzlers (as Presented at JavaOne 2014)
The groovy puzzlers (as Presented at JavaOne 2014)The groovy puzzlers (as Presented at JavaOne 2014)
The groovy puzzlers (as Presented at JavaOne 2014)
 
Palestra sobre Collections com Python
Palestra sobre Collections com PythonPalestra sobre Collections com Python
Palestra sobre Collections com Python
 
Mongo db modifiers
Mongo db modifiersMongo db modifiers
Mongo db modifiers
 
Divided difference Matlab code
Divided difference Matlab codeDivided difference Matlab code
Divided difference Matlab code
 
الجلسة الأولى
الجلسة الأولىالجلسة الأولى
الجلسة الأولى
 
Two Dice
Two DiceTwo Dice
Two Dice
 
Advance Techniques In Php
Advance Techniques In PhpAdvance Techniques In Php
Advance Techniques In Php
 
Area de un triangulo
Area de un trianguloArea de un triangulo
Area de un triangulo
 
「ベータ分布の謎に迫る」第6回 プログラマのための数学勉強会 LT資料
「ベータ分布の謎に迫る」第6回 プログラマのための数学勉強会 LT資料「ベータ分布の謎に迫る」第6回 プログラマのための数学勉強会 LT資料
「ベータ分布の謎に迫る」第6回 プログラマのための数学勉強会 LT資料
 
Share test
Share testShare test
Share test
 
SITCON 雲林定期聚 #1
SITCON 雲林定期聚 #1SITCON 雲林定期聚 #1
SITCON 雲林定期聚 #1
 
Pemrograman Terstruktur 3
Pemrograman Terstruktur 3Pemrograman Terstruktur 3
Pemrograman Terstruktur 3
 
数学カフェ 確率・統計・機械学習回 「速習 確率・統計」
数学カフェ 確率・統計・機械学習回 「速習 確率・統計」数学カフェ 確率・統計・機械学習回 「速習 確率・統計」
数学カフェ 確率・統計・機械学習回 「速習 確率・統計」
 
Change Detection Anno Domini 2016
Change Detection Anno Domini 2016Change Detection Anno Domini 2016
Change Detection Anno Domini 2016
 
Books
BooksBooks
Books
 
PLOTCON NYC: Behind Every Great Plot There's a Great Deal of Wrangling
PLOTCON NYC: Behind Every Great Plot There's a Great Deal of WranglingPLOTCON NYC: Behind Every Great Plot There's a Great Deal of Wrangling
PLOTCON NYC: Behind Every Great Plot There's a Great Deal of Wrangling
 
ゲーム理論BASIC 第41回 -続・仁-
ゲーム理論BASIC 第41回 -続・仁-ゲーム理論BASIC 第41回 -続・仁-
ゲーム理論BASIC 第41回 -続・仁-
 
PyLecture4 -Python Basics2-
PyLecture4 -Python Basics2-PyLecture4 -Python Basics2-
PyLecture4 -Python Basics2-
 
ゲーム理論BASIC 第40回 -仁-
ゲーム理論BASIC 第40回 -仁-ゲーム理論BASIC 第40回 -仁-
ゲーム理論BASIC 第40回 -仁-
 

En vedette

En vedette (20)

メールフォームからメールを送る近代的な方法 | YAPC::Kansai 2017 OSAKA
メールフォームからメールを送る近代的な方法 | YAPC::Kansai 2017 OSAKAメールフォームからメールを送る近代的な方法 | YAPC::Kansai 2017 OSAKA
メールフォームからメールを送る近代的な方法 | YAPC::Kansai 2017 OSAKA
 
オープンデータを利用したWebアプリ開発
オープンデータを利用したWebアプリ開発オープンデータを利用したWebアプリ開発
オープンデータを利用したWebアプリ開発
 
Perl ウェブ開発の中世〜CGI と Plack の間〜
Perl ウェブ開発の中世〜CGI と Plack の間〜Perl ウェブ開発の中世〜CGI と Plack の間〜
Perl ウェブ開発の中世〜CGI と Plack の間〜
 
CGI Perlでわかる!サーバレス
CGI Perlでわかる!サーバレスCGI Perlでわかる!サーバレス
CGI Perlでわかる!サーバレス
 
YAPC::Kansai 2017 - macOSネイティブアプリ作成におけるPerlの活用
YAPC::Kansai 2017 - macOSネイティブアプリ作成におけるPerlの活用YAPC::Kansai 2017 - macOSネイティブアプリ作成におけるPerlの活用
YAPC::Kansai 2017 - macOSネイティブアプリ作成におけるPerlの活用
 
2017年春のPerl
2017年春のPerl2017年春のPerl
2017年春のPerl
 
YAPC::KANSAI 2017 LT
YAPC::KANSAI 2017 LTYAPC::KANSAI 2017 LT
YAPC::KANSAI 2017 LT
 
Ranking system by Elasticsearch
Ranking system by ElasticsearchRanking system by Elasticsearch
Ranking system by Elasticsearch
 
Hokkaido.pm#13参加報告 | YAPC::Kansai 2017 Osaka
Hokkaido.pm#13参加報告 | YAPC::Kansai 2017 OsakaHokkaido.pm#13参加報告 | YAPC::Kansai 2017 Osaka
Hokkaido.pm#13参加報告 | YAPC::Kansai 2017 Osaka
 
レガシーな Perl システムに DDD (ドメイン駆動設計)を取り入れる
レガシーな Perl システムに DDD (ドメイン駆動設計)を取り入れるレガシーな Perl システムに DDD (ドメイン駆動設計)を取り入れる
レガシーな Perl システムに DDD (ドメイン駆動設計)を取り入れる
 
Twitterの被ブロック数可視化ツールを作ってみた
Twitterの被ブロック数可視化ツールを作ってみたTwitterの被ブロック数可視化ツールを作ってみた
Twitterの被ブロック数可視化ツールを作ってみた
 
H2O x mrubyで人はどれだけ幸せになれるのか
H2O x mrubyで人はどれだけ幸せになれるのかH2O x mrubyで人はどれだけ幸せになれるのか
H2O x mrubyで人はどれだけ幸せになれるのか
 
Practica
PracticaPractica
Practica
 
Technology for reduce of mistakes - うっかりをなくす技術
Technology for reduce of mistakes - うっかりをなくす技術Technology for reduce of mistakes - うっかりをなくす技術
Technology for reduce of mistakes - うっかりをなくす技術
 
今だからこそ振り返ろう!OWASP Top 10
今だからこそ振り返ろう!OWASP Top 10今だからこそ振り返ろう!OWASP Top 10
今だからこそ振り返ろう!OWASP Top 10
 
TrieとLOUDS??
TrieとLOUDS??TrieとLOUDS??
TrieとLOUDS??
 
Riakmeetup2forupload
Riakmeetup2foruploadRiakmeetup2forupload
Riakmeetup2forupload
 
Html5j 8
Html5j 8Html5j 8
Html5j 8
 
Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門
 
HBase Meetup Tokyo Summer 2015 #hbasejp
HBase Meetup Tokyo Summer 2015 #hbasejpHBase Meetup Tokyo Summer 2015 #hbasejp
HBase Meetup Tokyo Summer 2015 #hbasejp
 

Similaire à First step of Performance Tuning

Ifgqueue.h#ifndef LFGQUEUE_H #define LFGQUEUE_H#include pl.pdf
Ifgqueue.h#ifndef LFGQUEUE_H #define LFGQUEUE_H#include pl.pdfIfgqueue.h#ifndef LFGQUEUE_H #define LFGQUEUE_H#include pl.pdf
Ifgqueue.h#ifndef LFGQUEUE_H #define LFGQUEUE_H#include pl.pdf
fazilfootsteps
 
Algorithm, Review, Sorting
Algorithm, Review, SortingAlgorithm, Review, Sorting
Algorithm, Review, Sorting
Rowan Merewood
 
Designing Opeation Oriented Web Applications / YAPC::Asia Tokyo 2011
Designing Opeation Oriented Web Applications / YAPC::Asia Tokyo 2011Designing Opeation Oriented Web Applications / YAPC::Asia Tokyo 2011
Designing Opeation Oriented Web Applications / YAPC::Asia Tokyo 2011
Masahiro Nagano
 
php global $bsize,$playerToken,$myToken,$gameOver,$winArr,$rowAr.pdf
php global $bsize,$playerToken,$myToken,$gameOver,$winArr,$rowAr.pdfphp global $bsize,$playerToken,$myToken,$gameOver,$winArr,$rowAr.pdf
php global $bsize,$playerToken,$myToken,$gameOver,$winArr,$rowAr.pdf
anjalitimecenter11
 

Similaire à First step of Performance Tuning (20)

There's more than one way to empty it
There's more than one way to empty itThere's more than one way to empty it
There's more than one way to empty it
 
Functional Pe(a)rls version 2
Functional Pe(a)rls version 2Functional Pe(a)rls version 2
Functional Pe(a)rls version 2
 
How to clean an array
How to clean an arrayHow to clean an array
How to clean an array
 
Perl使いの国のRubyist
Perl使いの国のRubyistPerl使いの国のRubyist
Perl使いの国のRubyist
 
Taking Perl to Eleven with Higher-Order Functions
Taking Perl to Eleven with Higher-Order FunctionsTaking Perl to Eleven with Higher-Order Functions
Taking Perl to Eleven with Higher-Order Functions
 
The Perl6 Type System
The Perl6 Type SystemThe Perl6 Type System
The Perl6 Type System
 
Bag of tricks
Bag of tricksBag of tricks
Bag of tricks
 
Ifgqueue.h#ifndef LFGQUEUE_H #define LFGQUEUE_H#include pl.pdf
Ifgqueue.h#ifndef LFGQUEUE_H #define LFGQUEUE_H#include pl.pdfIfgqueue.h#ifndef LFGQUEUE_H #define LFGQUEUE_H#include pl.pdf
Ifgqueue.h#ifndef LFGQUEUE_H #define LFGQUEUE_H#include pl.pdf
 
Swift - 혼자 공부하면 분명히 안할테니까 같이 공부하기
Swift - 혼자 공부하면 분명히 안할테니까 같이 공부하기Swift - 혼자 공부하면 분명히 안할테니까 같이 공부하기
Swift - 혼자 공부하면 분명히 안할테니까 같이 공부하기
 
Bouncingballs sh
Bouncingballs shBouncingballs sh
Bouncingballs sh
 
Perl6 one-liners
Perl6 one-linersPerl6 one-liners
Perl6 one-liners
 
Wx::Perl::Smart
Wx::Perl::SmartWx::Perl::Smart
Wx::Perl::Smart
 
Algorithm, Review, Sorting
Algorithm, Review, SortingAlgorithm, Review, Sorting
Algorithm, Review, Sorting
 
distill
distilldistill
distill
 
Pop3ck sh
Pop3ck shPop3ck sh
Pop3ck sh
 
ゲーム理論BASIC 第42回 -仁に関する定理の証明2-
ゲーム理論BASIC 第42回 -仁に関する定理の証明2-ゲーム理論BASIC 第42回 -仁に関する定理の証明2-
ゲーム理論BASIC 第42回 -仁に関する定理の証明2-
 
Swift 5.1 Language Guide Notes.pdf
Swift 5.1 Language Guide Notes.pdfSwift 5.1 Language Guide Notes.pdf
Swift 5.1 Language Guide Notes.pdf
 
Designing Opeation Oriented Web Applications / YAPC::Asia Tokyo 2011
Designing Opeation Oriented Web Applications / YAPC::Asia Tokyo 2011Designing Opeation Oriented Web Applications / YAPC::Asia Tokyo 2011
Designing Opeation Oriented Web Applications / YAPC::Asia Tokyo 2011
 
php global $bsize,$playerToken,$myToken,$gameOver,$winArr,$rowAr.pdf
php global $bsize,$playerToken,$myToken,$gameOver,$winArr,$rowAr.pdfphp global $bsize,$playerToken,$myToken,$gameOver,$winArr,$rowAr.pdf
php global $bsize,$playerToken,$myToken,$gameOver,$winArr,$rowAr.pdf
 
第13回数学カフェ「素数!!」二次会 LT資料「乱数!!」
第13回数学カフェ「素数!!」二次会 LT資料「乱数!!」第13回数学カフェ「素数!!」二次会 LT資料「乱数!!」
第13回数学カフェ「素数!!」二次会 LT資料「乱数!!」
 

Plus de risou (6)

Development and practical use of CLI in perl 6
Development and practical use of CLI in perl 6Development and practical use of CLI in perl 6
Development and practical use of CLI in perl 6
 
Perl 6 Object-Oliented Programming
Perl 6 Object-Oliented ProgrammingPerl 6 Object-Oliented Programming
Perl 6 Object-Oliented Programming
 
"What Does Your Code Smell Like?"で学ぶPerl6
"What Does Your Code Smell Like?"で学ぶPerl6"What Does Your Code Smell Like?"で学ぶPerl6
"What Does Your Code Smell Like?"で学ぶPerl6
 
Officeで使うPerl Excel編
Officeで使うPerl Excel編Officeで使うPerl Excel編
Officeで使うPerl Excel編
 
Start Haskell 1st (Chapter 4)
Start Haskell 1st (Chapter 4)Start Haskell 1st (Chapter 4)
Start Haskell 1st (Chapter 4)
 
Rakudo Star at Yapcasia2010
Rakudo Star at Yapcasia2010Rakudo Star at Yapcasia2010
Rakudo Star at Yapcasia2010
 

Dernier

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Dernier (20)

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 

First step of Performance Tuning