
English: 
When alex did a video on linked list there's a lot of comments on it it sort of thing
I want to use a linked list arrays a factor
What's the point of reading this and so I was sort of thinking about is that well actually "Are arrays
faster than the linked list or are the linked lists faster than an array, how do we go about finding out?"
Which one's faster, so let's have a shoot out arrays versus linked list
First question to start is
I should just remind ourselves what the difference is between a linked list and
An array so let's start with the array so probably the simplest
To understand so an array is just a way of storing
several
values
in memory so we start off with the first value and
for the purposes of this demonstration, I'm going to use a
Structure containing multiple values. We did talk about objects a while ago structures are what you had before
We saw this object which is a collection of values in memories and store to integer values
So this is array element zero and it's got two numbers. We then got array element one

Turkish: 
Alex, bağlantılı listede bir video yaptığında, hakkında çok fazla yorum var.
Bağlantılı bir liste dizileri kullanmak istiyorum faktör
Bunu okumanın amacı nedir ve bu yüzden biraz düşünmüştüm, aslında "Diziler mi?
bağlantılı listeden daha hızlı mı yoksa bağlantılı listeler bir diziden daha hızlı mı, nasıl bulacağız? "
Hangisi daha hızlı, öyleyse en bağlantılı listeye göre dizileri dışarı atalım
Başlamak için ilk soru
Bağlantılı bir liste arasındaki farkın ne olduğunu kendime hatırlatmalıyım.
Bir dizi bu yüzden dizi ile başlayalım, bu yüzden muhtemelen en basit
Bunu anlamak bir dizi saklamanın bir yoludur.
birkaç
değerler
bellekte ilk değeri ile başlıyoruz ve
Bu gösteri için bir kullanacağım.
Birden çok değer içeren yapı. Bir süre önce nesneler hakkında konuştuk, yapılar daha önce sahip olduklarınızdı.
Anılardaki değerler topluluğu olan ve tamsayılara saklanan bu nesneyi gördük.
Yani bu sıfır dizi elemanı ve iki numarası var. Daha sonra bir dizi eleman elde ettik.

English: 
And it's got two numbers
Looks like I'm playing break out got a great element
To and it's got two numbers and so we can refer to any of these
by
reference to the Index starts at 0 3 4 5 6
7 10 so you can have an array of any size we have to know how big it is if you wanted to be when
You create so you allocate the memory for all the things and then?
You can store some values so we can write 42 in this one. We can put 21 in here
I'm going to put 3 in that one and we can store them or we can put different values in here as
Well as we need them so that's how an array works. Which is one big block of memory each thing stored one after the other
linked list works slightly different we start off at the beginning of
the linked list and it points at nothing but then as we add things to the list we

Turkish: 
Ve iki numarası var
Görünüşe göre mola veriyorum harika bir unsur var
Ve iki rakamı var ve bunlardan herhangi birine başvurabiliriz.
tarafından
Endeks referansı 0 3 4 5 6'da başlar
7 10 böylece istediğiniz zaman ne kadar büyük olduğunu bilmemiz gereken herhangi bir boyutta bir diziye sahip olabilirsiniz
Sen yarattın, böylece hafızayı her şeye ayırıyorsun ve sonra?
Bazı değerleri saklayabilir, böylece buna 42 yazabiliriz. Buraya 21 tane koyabiliriz
Buna üç tane koyacağım ve bunları saklayabiliriz veya buraya farklı değerler koyabiliriz.
Onlara ihtiyacımız olduğu için bir dizi böyle çalışıyor. Her biri birbiri ardına depolanan büyük bir hafıza bloğudur.
Bağlantılı liste başlangıcında başladığımızdan biraz farklı çalışıyor.
bağlantılı liste ve hiçbir şeye işaret etmiyor, sonra listeye bir şeyler eklerken

English: 
Allocate the memory for it. We're going to store two things so the first thing we'll label these things inside it p
And Q so it's a lot p here
And we've got q but we also have an extra thing that tells us where the next they will be and that's empty, too
So it's all put 42 and 16 so we just allocate space for that one
Structure that one thing that we're going to store and we connect it up
So we point this at the first thing so we often call this something like first
And we see Alex videos to see how that have done
So when we want to store the next thing we allocate explai for another one
And we can store the value, so we've still got 8
21 in it now the difference between this could be anywhere else in memory, and we connect to the next pointer
to point in
To the next thing so we have some known starting point
which points to the first thing and the first thing 22 the second thing and the second thing would point to the third thing and
So on and that would point down and these could be all over
anywhere

Turkish: 
Bunun için hafızayı ayır. İki şeyi depolayacağız, bu yüzden ilk olarak bunları etiketleyeceğiz.
Ve Q yani burada çok p
Ve biz q var ama aynı zamanda bize bir sonrakilerin nerede olacağını söyleyen ekstra bir şeyimiz var ve bu da boş
Yani her şey 42 ve 16'ya yazıldı, bu yüzden sadece bunun için yer ayırdık
Saklayacağımız bir şeyi yapılandırıp bağlayacağız
Yani bunu ilk şeye yöneltiriz, bu yüzden buna ilk gibi bir şey diyoruz.
Ve bunun nasıl yapıldığını görmek için Alex videoları görüyoruz
Yani bir sonraki şeyi saklamak istediğimizde bir başkasına açıklama yaparız.
Ve değeri saklayabiliriz, böylece hala 8'imiz var.
21 şimdi bunun arasındaki fark bellekte başka bir yerde olabilir ve bir sonraki göstericiye bağlanırız.
işaret etmek
Bir sonraki şey için bazı başlangıç ​​noktalarımız var.
bu ilk şeye işaret eder ve ilk şeye 22 ikinci şeye, ikinci şeye üçüncü şeye işaret eder ve
Böylece ve bu işaret edecek ve bunlar her yerde olabilir
herhangi bir yer

English: 
In the computer's memory and then at the end you normally point it at some known value
Which is often referred to as null and is often the number zero?
So you can then walk through your list
And when you find at the next point of zero or null you know you've come to the end of it
There are two different ways of storing data the best or the same amount of data now
He's got some differences this one as I says it's fixed inside, and you create it you can store
How many things you know I've actually filled in but as soon as you get more than eleven since final top array?
You can't go past eleven if you can see yeah the numbers all go to
11 on this however if we wanted to put something else thing we can just get rid of this thing
And update this to point
To a new thing so we can make this grow
Quite easily, and we can also be really clever
We can add things in the middle and the beginning very very simply, but we're going to go into that today

Turkish: 
Bilgisayarın hafızasında ve sonra sonunda normalde bilinen bir değere işaret edersiniz.
Hangisi boş olarak adlandırılır ve çoğunlukla sıfır sayısıdır?
Böylece listenizde gezinebilirsiniz
Ve bir sonraki sıfır noktasında veya null bulduğunuzda, bunun sonuna geldiğinizi bilirsiniz.
Şimdi en iyi veya aynı miktarda veri depolamanın iki farklı yolu vardır.
İçinde düzelttiğimi söylediğim gibi, bazı farklılıkları var ve siz onu yaratabilirsiniz
Aslında bildiğim kaç şeyi doldurduğumu biliyorum ama son üst diziden beri on birden fazla alır almaz?
Evet görürseniz onbiri geçemezsiniz.
Ancak bunun üzerine 11 başka bir şey koymak istiyorsak bu şeyden kurtulabiliriz
Ve bunu noktaya güncelle
Yeni bir şeye, böylece büyümesini sağlayabiliriz
Oldukça kolay, ve gerçekten de zeki olabiliriz
Ortada ve başında çok basit şeyler ekleyebiliriz, ancak bugün buna gireceğiz

English: 
So creating them. We're probably only going to do once but which one is actually faster
Well, let's think about what actually to do. Let's define a very very simple problem
We've created the structure here, and it's got two things in it
It's got an integer called p and an integer called Q so saving the linked list and in
The array let's consider an operation where we're just going to go through all the elements in our array
Or all the elements in our linked list and sum the value of p are going to add up all the value
So we're going to add up. What's in array
Element Zeroes P in array of them at once P and so on so we're going to effectively do
Something's going to add them all up. We'll do the same with the linked list as well
So we're going to set what the first thing is to point to p
Now that one. No. There's no time out of its value of p the next one and so on and we'll add them all up
Why are we using missiles they want to the unique thing about this is

Turkish: 
Yani onları yaratıyorum. Muhtemelen sadece bir kere yapacağız ama hangisi daha hızlı?
Peki, gerçekte ne yapacağımızı düşünelim. Çok çok basit bir problem tanımlayalım
Buradaki yapıyı yarattık ve içinde iki şey var.
P adında bir tamsayı ve Q adında bir tamsayı var, böylece bağlantılı listeyi kaydedin ve
Dizi, dizimizdeki tüm unsurları inceleyeceğimiz bir işlemi düşünelim.
Ya da bağlantılı listemizdeki tüm unsurlar ve p'nin toplamı tüm değeri artıracaktır.
Yani ekleyeceğiz. Dizi nedir
Sıfırlar P öğesini bir kerede P dizisi ile alınız ve böylece etkin bir şekilde yapacağız
Bir şeyler hepsini toplayacak. Bağlantılı listeyle de aynısını yapacağız
Bu yüzden p'nin göstereceği ilk şeyin ne olacağını belirleyeceğiz.
Şimdi bir tane. Hayır. Bir sonrakinin p değeri dışında hiçbir zaman yok ve böylece hepsini ekleyeceğiz.
Neden füze kullanıyoruz ki bu konuda eşsiz bir şey istiyorlar.

English: 
That it's going to visit every single element in either the array or every single element in the linked list
so we're going to visit every single element if you only have to visit one element then the very nature of
Random access into array means as we fast
There's no way you can make any difference unless it's the first element if you only one to ever access the first element
Then look at the same speed we fuel directly to random element
Then the array or win hands down you can just think about how it works that will be the case. We're going to consider
We want to access every single element and do something to it and in this case
You're just going to sum up the values, but it could be if things were representing say windows on the screen
We want to move them around we want to redraw them
Whatever it is will then do something to every single wall so we sort of set out the problem?
I'm going to go over an array of values and a linked list of values
I'm going to in sum in the visits all and we do actually add up all the numbers
Stored in the element P. Which is part of the structure so what I've done is I've written
To see poems which are more or less identical
I'm going to create

Turkish: 
Dizideki her bir öğeyi veya bağlantılı listedeki her bir öğeyi ziyaret edeceğini
öyleyse her bir öğeyi ziyaret edeceğiz, yalnızca bir öğeyi ziyaret etmeniz gerekiyorsa
Diziye rasgele erişim, oruç tuttuğumuz anlamına gelir
İlk öğeye yalnızca bir kez erişirseniz, ilk öğe olmadıkça herhangi bir fark yaratabilirsiniz.
Sonra doğrudan rastgele elemana yakıt olarak verdiğimiz hıza bakın
Sonra dizi veya eller aşağı kazanmak sadece durum böyle olacağını nasıl çalıştığını düşünebilirsiniz. Dikkate alacağız
Her bir öğeye erişmek ve ona bir şey yapmak istiyoruz ve bu durumda
Siz sadece değerleri özetleyeceksiniz, ama eğer temsil eden şeyler ekranda pencereler söylüyorsa olabilir.
Onları hareket ettirmek istiyoruz. Yeniden çizmek istiyoruz.
Her ne ise, her bir duvara bir şeyler yapacak, bu yüzden sorunu çözelim mi?
Bir değerler dizisi ve bağlı bir değerler listesi üzerinden gidiyorum
Toplamda tüm ziyaretlerde toplamı yapacağım ve aslında tüm sayıları topluyoruz
P elementinde depolanmış olan yapının bir parçası yani yaptığım şeyi yazdım
Hemen hemen aynı olan şiirleri görmek için
Ben yaratacağım

English: 
125,000 elements in my array
or mailing list and in the linked list I've got a structure which contains an integer p and an integer Q and
in the array version
I've got a structure which contains an integer p and interested Q in the array item
The only difference is that the linked list has one extra item which is the next pointer to the next thing?
So very listen see so hopefully we'll go as fast as we possibly can most of the rest of the program
is
identical
so I have my main Routine here which creates a
List or an array of random number generator?
125,000 random numbers which is a slowest part of the program you'll see and then store them
So allocate memory for each element in the linked list and then we set the value
Everything else will just leave with 0 and we do the same with the array just as we did on the paper
We then run the program
100 times and all going to here is time

Turkish: 
Dizimdeki 125.000 öğe
veya e-posta listesi ve bağlantılı listede, bir tamsayı p ve bir tamsayı içeren bir yapıya sahibim ve
dizi sürümünde
Dizi öğesinde p tamsayısı ve ilgilenen Q içeren bir yapıya sahibim
Tek fark, bağlantılı listenin bir sonraki şeyin bir sonraki göstericisi olan bir ekstra maddeye sahip olmasıdır.
Öyleyse çok dinle, öyle umuyorum ki programın geri kalanında mümkün olduğunca hızlı gideceğiz.
olduğu
özdeş
bu yüzden burada ana rutin benim
Liste veya rasgele sayı üreteci dizisi?
Programın en yavaş kısmı olan 125.000 rasgele sayı göreceksiniz ve sonra bunları saklayın
Böylece, bağlı listedeki her bir öğe için bellek ayırın ve sonra değeri belirledik
Geriye kalan her şey 0 ile başlayacak ve aynı kağıt üzerinde yaptığımız gibi diziyle aynı şeyi yapacağız
Sonra programı çalıştırıyoruz
100 kez ve tüm buraya gelecek zaman

English: 
How long it takes to run a function which adds afforda numbers either in the list or in the array?
I will do that 100 times
And then we can work out the average time it takes to calculate one and we'll print out the values as we go
So we're just using the built-in clock function in C. Which should be accurate accurate enough for what we want to do
so the real meat the body of the program is this function here some list or
Some array
Let's start with the array one because possibly the simplest we said a variable to be zero that's going to be asked some
You have another variable
I which is going to be our index through the array and we go from I equals zero
I first element until we get to the end the number of elements in there
and we just say this sum equals the value that was already in sum plus the value in the ice element in the array a
P element
Remember we said the array had a p and a Q in it we want the value stored in the p space within the structure

Turkish: 
Listede veya dizide afforda sayıları ekleyen bir işlevi çalıştırmak ne kadar sürer?
Bunu 100 kere yapacağım
Ve bir tanesini hesaplamak için harcanan ortalama zamanı hesaplayabiliriz ve değerleri ilerledikçe yazdırabiliriz.
Bu yüzden sadece C'deki yerleşik saat fonksiyonunu kullanıyoruz. Bu, yapmak istediklerimiz için yeterince doğru olmalı.
Yani gerçek et programın gövdesi bu fonksiyon burada bazı liste veya
Bazı dizi
Diziliş ile başlayalım çünkü muhtemelen en basit olanı sıfır olacak bir değişken dedik.
Başka bir değişken var
Dizideki dizinimiz olacak olan I ve sıfıra eşittir.
Ben ilk elemanın sonuna kadar oradaki elementlerin sayısını elde edene kadar
ve biz sadece bu toplamın zaten toplamda olan değere ve a dizisindeki buz elementindeki değere eşit olduğunu söylüyoruz.
P elemanı
Unutmayın ki dizide ap ve Q var, yapı içindeki p alanında depolanan değeri istiyoruz.

English: 
in our array, so I'm just going to add get them together the list version very very similar we set the someone to be 0
We say while p does not equal null
So why we haven't reached the end of the list and we set p initially to be the first thing in the linked list?
So pointing out that first thing sum equals sum plus
P inside p. We using P inside p
Confusing variable names, but then I'm asleep programmer, and then we set p ir pointer to point to the next thing
So we follow the link to the next thing in the linked list and we keep doing that until we come to the end
There are two programs as simple as you get in terms of implementing a linked list or on array
so we're going to do is run them and
We should get some values output
But we're not going to run them on the I max we're not going to run them on the raspberry Pi
we're actually going to run them on the atari behind me which means I need a very high Peak high-tech piece of
Equipment, so I need a floppy disk to transfer other programs from the iMac

Turkish: 
Dizimize ekleyeceğim, ekleyeceğim sadece onları bir araya getirip liste versiyonunu çok çok benzer birisini 0 olarak ayarladık.
P'nin null olmadığını söylüyoruz
Öyleyse neden listenin sonuna ulaşmadık ve ilk önce bağlantıyı listedeki ilk şey olarak belirledik?
Öyleyse ilk şeyin toplamının artıya eşit olduğuna işaret etmek
İçinde p. P'yi p içinde kullanıyoruz
Kafa karıştırıcı değişken isimleri var ama sonra uykuya dalmış programcıyım ve sonra bir sonraki şeye işaret etmek için p ir pointer'ı ayarladık
Böylece bağlantılı listedeki bir sonraki şeyin bağlantısını takip ediyoruz ve sonuna kadar bu işi yapmaya devam ediyoruz.
Bağlantılı bir listeyi veya diziyi uygulamak konusunda elde ettiğiniz kadar basit iki program vardır.
yani yapacağız onları çalıştırmak ve
Bazı değerler çıktı almalıyız
Ama biz onları maksimuma getirmeyeceğiz, ben onları maksimuma indirmeyeceğiz.
Onları gerçekte arkamda ataride koşacağız, bu da çok yüksek bir zirve yüksek teknoloji parçasına ihtiyacım olduğu anlamına geliyor.
Ekipman, iMac’ten diğer programları aktarmak için bir diskete ihtiyacım var

Turkish: 
Onları iMac’lerden çekmeye gidin, sonra onları AtAri’de çalıştırabiliriz.
öyleyse Atari'ye git ve
Kameraların ve spotun güvencesi. Görebiliyoruz. İlk başta benim yapacağım şey kaçmaları gerektiği.
Liste ilk önce aynı zamanda üretecek
125,000
Bağlantılı liste değerleri çalışmasına izin vermek
Disketi kapatırken
80'li ve 90'lı yıllardaki gibi olmak için kullanılan şey buydu.
Bir
uzun süre
Ve bu sadece basit bir program
Yani iyi
Yani değil
Bağlantı listesinin başlatılması tüm hafızanın farklı elemanlara tahsis edilmesi ve ardından rastgele bir sayı koyulması
Her birinin P değerinde, çalışmasına izin vereceğiz.
Eski Hobbit bilgisayarının sözleriyle oyun zamanı geçiyor ya da bunun her elmasının sözleriyle
kısa sır
Bu ne kadar sürer?

English: 
Go topping them off the iMac, and then we can run them on the AtAri
so go over to the Atari and
Assurance that it's cameras and spot. We can see it. So what I'm gonna do at first is they got to run
the list first also going to generate
125,000
linked list values to let it Run
Right while it loads off the floppy disk
that's what it used to be like back in the 80s and 90s you had to wait one you crave them ran a
While a
long While
And this is just a simple program
So there is good
So it's not
Initializing the link list it's allocating all the memory for the different elements and then putting a random number
In the P value of each one, so we'll let that run
In the words of the old Hobbit computer game time passes or in the words of every apple of this
secret short
How long does this take?

English: 
A while lots of oil, I don't know another time this bit
125,000 times however long it takes to allocate a random number and allocate some memory
On the clock speed of what this is actually an 8 MegAhertz cPU
So it's a takes a while the computer loaded off all the code for the program and off the floppy disk into memory
And it's now running it to generate the data set that we need then Gonna sum all the values
So everything is happening now will happen off memory
It's just taking a while to process it
But we are recording it in 4k which is a slight overkill. I hope you're getting into that
extra bit
So the programs going through now and we'll let it run 400 times
We'll get an average, but actually looking at the values of the coming up
I think we can safely assume that the average is going to end up being

Turkish: 
Bir süre çok fazla petrol, bu sefer başka bir zaman bilmiyorum
Ancak 125.000 kez uzun bir süre rastgele bir sayı tahsis etmek ve biraz hafıza ayırmak için gerekli
Bunun gerçekte ne olduğuna dair saat hızında 8 MegAhertz cPU
Bu yüzden bilgisayar programın tüm kodunu ve disketi belleğe yüklüyor.
Ve şimdi ihtiyaç duyduğumuz veri setini oluşturmak için çalışıyor, sonra tüm değerleri toplayacağız
Yani şimdi her şey oluyor hafızada olacak
İşlemesi sadece biraz zaman alıyor
Ama biz 4k ile kayıt yapıyoruz ki bu hafif bir overkill. Umarım buna giriyorsundur
ekstra bit
Böylece programlar şimdi geçiyor ve 400 kez çalışmasına izin veriyoruz
Bir ortalama elde edeceğiz, ancak gerçekte ortaya çıkan değerlere bakarak
Sanırım, ortalamanın sona ereceğini güvence altına alabiliriz.

English: 
166 clock ticks now when I say qwop takes each of the machines. We're going to look at are going to have
Different clocks perms that they use the time things so we can't compare the values directly what we could come read with the seconds
But we can certainly see the relative patterns between it will call that
166 clock ticks over to run the linked list version of the program it takes
166 clock ticks
So let's now run the array version of the program
So now we're going to do exactly the same thing
we're going to allocate an array every time tWenty-five thousand elements and
populate them with random values because of the way
I've written the program
It will actually be the same pSeudo random number sequence that the sum should be the same and then we're going to fill
each of them up and time how long that takes and we'll they'll see whether an array actually is faster than the linked list or
Whether a linked list will be b. Array
So that to me looks like that little spinny thing is going faster
Yeah, well so and I haven't just upgraded the processor while they're off camera

Turkish: 
Qwop makinelerin her birini alır derken 166 saat geçiyor şimdi. Biz bakacağız
Farklı saatler, zaman işlerini kullanmalarına izin verir, böylece değerleri saniyelerle okuyabildiklerimizle doğrudan karşılaştıramayız.
Ancak aralarındaki göreceli kalıpları kesinlikle göreceğiz diyebiliriz.
166 saat, sürdüğü programın bağlantılı liste sürümünü çalıştırmak için işaretliyor
166 saat keneleri
Öyleyse şimdi programın dizi sürümünü çalıştıralım
Şimdi tam olarak aynı şeyi yapacağız
Her seferinde beş beş bin öğeye bir dizi tahsis edeceğiz ve
yollarından dolayı onları rasgele değerlerle doldur
Programı yazdım
Aslında toplamın aynı olması gereken aynı pSeudo rasgele sayı dizisi olacak ve sonra dolduracağız
her biri ne kadar zaman alır ve zaman alırlar ve bir dizinin gerçekten bağlantılı listeden daha hızlı olup olmadığını görürüz.
Bağlantılı bir listenin olup olmayacağı b. Dizi
Bana öyle geliyor ki, küçük, eğri şey daha hızlı gidiyor.
Evet, peki öyleyse ve kamera kapalıyken işlemciyi henüz yükseltmedim.

Turkish: 
Aslında olan nedir?
Bağlantılı liste için yer tahsis ettiğimizde, her bir element için ve daha sonra oradaki spor salonu için yer tahsis etmemiz gerekir.
Bir sonraki elemana yer ayırırız. Bunu farklı bir şekilde yapabiliriz ve işleri hızlandırabiliriz, ama yaptık
Dizi ile klasik yol budur. Bütün partiyi tek seferde dağıtıyoruz, o yüzden hepimiz bir tane alıyoruz
25.000 çarpı sekizin altındaki büyük bellek bloğu yaklaşık bir megabaytlık bellek değerinde
Böylece hepsini tek seferde tahsis edin ve sonra tüm değerleri ayarlayarak tüm değerleri ayarlayarak geçiyoruz.
Yani bu daha hızlı olmalı
ve öyle görünüyor ve çıkrık biraz daha hızlı gidiyor, neden bu kadar hızlı dönüyordu?
Bu şeyi duyduysan okuyabilirsin, evet?
Yani bu çalışırken bir çeşit görsel geri bildirim vermek.
Ben sadece düz beyaz bir ekran yapıyorum, her yüz element idealini basıyorum
O şeyi güncelliyorum ve sadece kısa çizgi
Dikey çizgi veya iki eğik çizgiden biri, etrafı dönüyormuş gibi görünmesini sağlamak için basıyor ve biraz bastırıyor.

English: 
What's actually happening is?
When we allocate the space for the linked list we have to allocate space for each element and then for the gym there
We allocate space for the next element. We could do that in a different way and speed things up, but we did it
That's the classic way with the array. We allocate the whole lot in one go, so we all take one
Huge block of memory under 25,000 times eight is about one meg's worth of memory
So allocate all that in one go, and then we're just going through it filling in all the values setting all the values
So that should be quicker
and it seems and spinning wheel is going slightly faster what why would that Spin wheel very fast can you just learn how that
You can read it if you've heard this thing you it yeah?
So to give some nice sort of visual Feedback while this is running
Well, I'm just a plain white screen what I'm doing is I'm printing every hundred element ideals
I update that thing and just printing either a dash a
Vertical line or one of the two slashes to make it look like it's getting round and those are printing it it creates a little

English: 
Effect which is see that something's happened and the computer hasn't crashed
So this should be faster, and we should get a value so is now working and the immediate thing we see is
That the array is taking about
179 or
178 ticks it's the same quad kick so we can compare these two values
the Array is
slower than a linked list I
Know down, okay? All right now. So you can't argue in - okay, so the numbers have come in the computers around
170 angular call is to that 170 8.5. Always for the final average to come in but for that. So they're roughly comparable
Basically there's not much it sort of thing, but there's something about 200 qwop ticks per second on this machine
It's is probably a noticeable. It's about 10 percent slower

Turkish: 
Bir şeyin olduğunu ve bilgisayarın çökmediğini gören efekt.
Öyleyse bu daha hızlı olmalı ve bir değer kazanmalıyız, şimdi çalışıyor ve gördüğümüz en yakın şey
Bu dizi alıyor
179 veya
178 aynı dört tekme attığını gösterir, böylece bu iki değeri karşılaştırabiliriz
Dizi
bağlantılı bir listeden daha yavaş I
Biliyorsun tamam mı? Simdi tamam. Yani tartışamazsınız - tamam, sayılar etraftaki bilgisayarlara geldi.
170 açısal çağrı bu 170 8.5'tir. Her zaman nihai ortalamanın gelmesi için ama bunun için. Yani kabaca karşılaştırılabilirler.
Temelde pek bir şey yok, ama bu makinede saniyede yaklaşık 200 qwop tikleme var.
Muhtemelen göze çarpan bir şey. Yaklaşık yüzde 10 daha yavaş

Turkish: 
Tamam, bu kadar. Yani burada durabiliriz, işte bu kadar. Biliyoruz. Ne dizileri yavaş
Buruşuk bir şekilde evet, bu yüzden diziler ling Li'den daha yavaştır
Benim satıcı videoyu almalıyım evet ve şimdi eğik çizgi bilgisayarını açabilirsiniz.
fiilen
Ray üzerinde yürüyebilmenin iki yolu var.
Diziyi daha küçük sayılardan daha büyük sayılara yükselttik
Ama aynı zamanda daha büyük endekslerden başlayıp daha küçük endekslere geri dönebiliriz.
İki yolu da deneyelim, hayır diyen bazı yorumlar gönderen kimseye sahip olamayalım.
Öyleyse diğer yoldan çalıştıralım, o yüzden aşağı inen bir sürümü yazdım ve sayıları bir araya getiriyoruz.
Tam olarak aynı cevabı alacağız bir artı b eşittir b. Artı bir ve öğrenmek için numphile izleyebilirsiniz tüm
Daha fazla çevrimiçi. eminim
Bunun tam olarak aynı süreyi alacağını düşünüyorsunuz, bu nedenle tabloyu güncelleyin
Bunu yapmak için, burada ters diziye sahip olacağız.
Bunu yaparken sadece bekleyeceğim

English: 
Okay, so that's it. I mean we can stop here come a that's it. We know. What's what arrays are slow
You wrinkly yep, so arrays are slower than ling Li
Gotta get my vendor video yeah and a video you can now bring up the slash computer, so
virtually
There are two ways you can walk over the Ray
We went up the array from the smaller numbers to the larger numbers
But we could also start at the larger indexes and move back to the smaller indexes, and I thought well
Let's try it both ways let's not have anyone posting some comments saying no, but if you went the other way
So let's run it the other way, so I wrote a version which walks down and because we're adding the numbers together
We'll get exactly the same answer a plus b equals b. Plus a and all that you can watch numberphile to find out
More online. I'm sure
You think this would take exactly the same amount of time, so just update our table
To do this and we're going to have the reverse array here
I'll just wait while it does that

English: 
So going backwards through the array the only thing can we do the same thing with the linked list
Well the way we've designed the linked list we
Have a pointer to the next thing in each thing, but we don't have a pointer back to the previous thing
It's a singly linked list so we can only move forwards along it
We could design it to be a doubly linked list and have a backwards and forwards pointer
but if you think about it if we started at the end
And move backwards that's going to be exactly the same
Operations as if we start at the beginning and before so there's actually no point in testing
It'd be exactly the same code. We just be using different offsets into memory so taking exactly the same amount of time
While we wait for that to do its thing let's run the same programs on
The Imac and see how much faster it is so let's compile them up. I am turning on as I did before all the optimizations
For the array and things that'll make it go as fast as poss but some of the comparison to the array

Turkish: 
Dizinin içinden geriye doğru gitmek, tek şey aynı şeyi bağlantılı liste ile yapabiliriz.
Bağlantı listesi tasarladığımız gibi
Her şeyde bir sonraki şeye bir işaretçi var, ama önceki şeye bir işaretçi bulamadık
Tek başına bağlı bir listedir, böylece yalnızca ileriye doğru ilerleyebiliriz.
İkili bağlantılı bir liste olarak tasarlayabiliriz ve geriye ve ileriye dönük bir işaretçiye sahip olabiliriz.
ama sonunda düşünürsek düşünürsen
Ve aynı şekilde olacak olan geriye doğru hareket edin
İşlemler en baştan ve daha önce başlıyormuşçumuzdur, bu nedenle test etmenin hiçbir anlamı yoktur.
Tamamen aynı kod olurdu. Sadece farklı ofsetleri hafızaya kullanıyoruz, bu yüzden aynı miktarda zaman alıyoruz
Bunu yapmak için beklerken, aynı programları çalıştıralım.
Imac ve ne kadar hızlı olduğunu görelim, öyleyse onları derleyelim. Tüm optimizasyonlardan önce yaptığım gibi açıyorum
Dizi ve onu mümkün olduğu kadar hızlı hale getirecek şeyler için dizi ile karşılaştırmanın bir kısmı

Turkish: 
Test ve hız testi ile derleyeceğim
Tamam, ben de aynı şeyi yapacağım
bağlantı için
Test Şimdi çok açık bir şey söyleyeceğim
Ama dürüst olmak gerekirse, bu makineyi derlemek ve hazırlanmak için çok daha hızlı bir hal alıyor. Evet
Bu makineler çok daha hızlı çünkü ben burada her şeyi derlerken ve daha sonra her yere aktarırken
Eski C derleyicimin AtAri'de çalışmasını sağlamak yerine
Ve ayrıca, bu daha iyi kod üretecek ihtimaller, bu yüzden hızdan en iyi şekilde yararlanacak
Onları üst üste koyabiliriz, o yüzden daha önce yaptığımız gibi bağlantılı liste testini yapalım.
Boom
Bitti
Artık her şeyin daha hızlı olduğunu fark ettin mi?
Rakamlar hala kabaca aynı sıradadır, yine de yaklaşık 100 ve 200 civarındadır, ancak bunun farklı olduğunu unutmayın.

English: 
Test and I going to compile with the speed test
Done, and I'm going to do the same thing
for the link
Test I'm going to say something really obvious now
But it's honestly a heck of a lot quicker this machine just to get compiled up and ready. Yeah
Those machines much faster because while I'm compiling everything on here and then transferring it across
Rather than trying to get my old C compiler going on the AtAri
And also the chances are this will produce better code, so it'll take make the most benefit of the speed
We can pile them up, so let's run the linked list test as we did before
boom
It's done
Everything now you notice that took a lot quicker?
The numbers are still roughly in the same order still about 100 and around 200 but remember this is a different

English: 
Clock we cannot compare the ticks from that one - it's on the different numbers, but we get the average here two hundred and nine
Point five four I'm acting this is 166 atari ticks
They're much slower chicks than the I like ticks we can't compare that to that we can compare
horizontally
let's do the same now with the array test and
Wow
When we did the linked list test on the atari it was faster than the array test
Roughly take you about ten percent faster
Nothing really in it you could say look at the difference on
The Imac the IMac takes forty three point four four clock ticks to do the array
209 that's five times
Faster for the Array was on the Atari the linked list was faster
So a reverse array is now going on
the Atari
114 and

Turkish: 
Saat Buradaki keneleri karşılaştıramıyoruz - farklı sayılar üzerinde, ancak buradaki ortalaması ikiyüz dokuz
Beşinci nokta, bu oyunculuk yapıyorum 166 atari kenesi
Karşılaştığımız şeye benzeyen kenelerden çok daha yavaş piliçler.
yatay
Şimdi dizi testi ile aynı şeyi yapalım
vay
Atari üzerinde bağlantılı liste testini yaptığımızda, dizi testinden daha hızlıydı.
Kabaca sizi yaklaşık yüzde on daha hızlı götürür
İçinde gerçekten bir şey yok diyebilirim ki aradaki farka bak
Imac IMac dizi yapmak için kırk üç nokta dört dört saat keneler alır
209 beş kez
Dizi için daha hızlı Atari'deydi, bağlantılı liste daha hızlıydı
Yani şimdi ters bir dizi devam ediyor
Atari
114 ve

English: 
That's quicker. That's quicker than the original array, and that's quicker than the linked list, so if we do everything backwards
Doogie where it's very good if you do everything forwards
It's much slower. I'm a bit confused
Is there any possibility that's just a problem the code or something always are you going to reveal something to this year?
We need to delve a bit deeper here to see what's really going on
Remember we wrote these programs in C
So we wrote these in the high-level language and then they got compiled down
To the instructions that the machine can execute and what's actually happening here. Is that the research shows that the machine can execute?
Favor walking backwards down something compared with going further upwards now
Let's run that same array backwards
Program on the IMac for completing this so let me compile that one up and again. I'm
Optimizing everything to the hilt
Test and so we'll run speed tests back

Turkish: 
Bu daha hızlı. Bu, orijinal diziden daha hızlı ve bağlantılı listeden daha hızlı, yani her şeyi geriye doğru yaparsak
Her şeyi ileriye götürürseniz, Doogie'nin çok iyi olduğu bir yer
Çok daha yavaş. Biraz kafam karıştı
Sadece bir problem olan bir olasılık var mı, yoksa kod ya da bir şey her zaman bu yıla bir şey açıklayacak mısın?
Neler olup bittiğini görmek için burada biraz daha derinden gitmeliyiz
Unutma, bu programları C dilinde yazdık.
Bu yüzden bunları üst seviyede yazdık ve derlendiler.
Makinenin uygulayabileceği talimatlar ve gerçekte burada olanları. Araştırma, makinenin çalışabileceğini mi gösteriyor?
Şimdi daha da ileri gitmekle kıyaslandığında bir şeyden geriye doğru yürümeyi tercih edin
Aynı diziyi geriye doğru çalıştıralım
Bunu tamamlamak için IMac üzerinde Program bu yüzden bunu tekrar tekrar derlemek edelim. Ben
Her şeyi tepeye optimize etmek
Test edin, böylece hız testlerini tekrar yapacağız.

English: 
And we'll run this one so before the arrays now much faster
According to this a reversal rate should be faster than the forward array. So what would you expect the value to be shown for?
Run on the reverse away about fifteen or twenty directly if it was the same as that did
All right
Would you like to stick with that answer or would you like to change that oh?
nervous excited actually
Because the Atari was faster to do a linked list in an array and the iMac was the other way around
I'm going to say it's going to be slower to do it in reverse. So you reckon firm supposed to do it in reverse
Oh, I do like an indecisive person there. We go average time forty seven
point four six
So marginally slow marginally slower about 10% slower
but still an order of magnitude

Turkish: 
Bunu dizilerden çok daha hızlı bir şekilde daha önce çalıştıracağız.
Buna göre, tersine çevirme oranı, ileri diziden daha hızlı olmalıdır. Öyleyse, değerin ne için gösterilmesini beklersiniz?
Tam tersine, yaklaşık olarak on beş veya yirmi kadar koşun.
Tamam
Bu cevaba ayak uydurmak ister misin yoksa değiştirmek ister misin?
gergin gergin aslında
Çünkü Atari bir dizide bağlantılı bir liste yapmak için daha hızlıydı ve iMac bunun tersi oldu.
Bunu tersine çevirmenin daha yavaş olacağını söyleyeceğim. Yani firmayı tersine çevirmesi gerektiğini düşünüyorsun.
Oh, kararsız birini seviyorum. Ortalama kırk yedi
dört nokta altı
Yani marjinal yavaş marjinal yavaş yavaş yaklaşık% 10 yavaş
ama yine de bir büyüklük sırası

English: 
faster than this we could do the same on the raspberry Pi
So again, we'll compile all of these up, so we'll do it array test
Compile it up noticeably slower to compile will do the LL test. This is the list version
And we'll do the reverse test
So compile them all up on the last repair, so let's run these and get the numbers we've run the array test
we now get nine 165 point seven five as an average for the array will run the link list and
We get one eight five eight
Point six one for the linked list test and now we run the reverse test
and
We get 101

Turkish: 
Bundan daha hızlı ahududu Pi aynı yapabiliriz
Yani tekrar, hepsini toplayacağız, bu yüzden dizi testini yapacağız.
Derlemek için farkedilir şekilde yavaş derleyin LL testi yapacak. Bu liste versiyonu
Ve biz ters testi yapacağız.
Onları son onarımda toplayın, hadi bunları çalıştıralım ve dizi testini yaptığımız rakamları alalım
Şimdi bağlantı dizisini çalıştıracak olan dizilim için ortalama olarak dokuz 165 puan yedi beş alıyoruz ve
Bir sekiz beş sekiz alıyoruz
Bağlantılı liste testi için altıyı işaretleyin ve şimdi ters testi yapalım
ve
101 alıyoruz

English: 
9.5 five so we've run the test now. So we've we've assumed nothing
We've ran some tests or to get some data so we can see which is faster an array or liquids with this operation
We've been trying
And we've got some pretty interesting results
So we're running on the atari the linked list was faster than the array
unless he ran the array backwards in which case the array was faster than the linked list and
The array going forward we'll come back to that
We ran it on the raspberry Pi and here the array was about twice as fast as the linked list
Baby rarely backwards the Array was slower, and if you do it on the IMac view range height, I'm faster than the linked list
Whichever way you went so what's going on here?
Well, let's ignore the iMac for the minute the apple Haters will love that bit
but let's ignore the Imac for though and let's just have a look at the raspBerry Pi and
the attali so we've got
the Atari and the Raspberry Pi and we'll just go with

Turkish: 
9,5 beş böylece testi şimdi yaptık. Yani hiçbir şey varsaymadık
Bazı testler yaptık veya bazı veriler elde ettik, böylece hangisinin daha hızlı olduğunu görebiliyoruz.
Deniyoruz
Ve oldukça ilginç sonuçlarımız var.
Yani biz atari yapıyoruz, bağlantılı liste diziden daha hızlıydı.
diziyi geriye doğru koştuysa, bu durumda dizi bağlantılı listeden daha hızlıydı ve
Dizi devam edecek, geri döneceğiz.
Ahududu Pi üzerinde koştuk ve burada dizi bağlantılı listenin iki katı kadar hızlıydı
Bebek nadiren geriye doğru Array yavaştı ve IMac görüş menzili yüksekliğinde yaparsanız, bağlantılı listeden daha hızlıyım.
Hangi yoldan gidersen, burada neler oluyor?
Pekala, hadi Apple Haters'ın bu parçayı seveceği dakika için iMac'i görmezden gelelim.
ama Imac'ı yine de görmezden gelelim ve ahududu Pi'ye bakalım.
Attali bu yüzden aldık
Atari ve Ahududu Pi ile birlikte gideriz.

English: 
The array speed and the link to this so we've got about one hundred and seventy nine
For that and one hundred and sixty-six clock ticks that now when we can't compare the clock ticks between the different machines because they're different
different clocks used in the machines
but we can compare them relatively between the same thing on the same machine for the raspberry Pi it was
966 and
that was a
1859 Kish now what's going on here?
Well the thing we need to remember
if you look at the machine code
It's roughly the same length the same number of operation now on the atari some of the instructions will take slightly longer than to execute
But that's not what gets going on here
We need to think back to the video on
Cashiers that we did the difference between the raspberry Pi CPU would have been much faster and more modern and the Ataris
Is that the AtAris?
Doesn't have a cache
So every instructionally needs to fetch every bit of data that needs to fetch has to be fetched from memory each time

Turkish: 
Dizi hızı ve buna bağlanma böylece yüz yetmiş dokuz
Bunun için ve yüz altmış altı saat keneleri, şimdiki saatlerle farklı makineler arasındaki keneleri karşılaştıramıyoruz çünkü onlar farklı.
makinelerde kullanılan farklı saatler
ama ahududu Pi için aynı makinede aynı şey arasında nispeten onları karşılaştırabiliriz
966 ve
bu bir
1859 Kish şimdi burada neler oluyor?
Hatırlamamız gereken şey
makine koduna bakarsanız
Neredeyse aynı uzunlukta, şimdi ataride aynı sayıda operasyon yapılması bazı talimatların uygulanmasından biraz daha uzun sürecektir.
Ama burada olan şey bu değil.
Hakkındaki videoya geri dönmemiz gerekiyor
Ahududu Pi CPU arasındaki farkı yaptığımız kasiyerler, Ataris ve çok daha hızlı ve daha modern olurdu
Bu AtAris mi?
Önbelleği yok
Bu nedenle, her talimat gereği, getirilmesi gereken her veri parçasını almak gerekiyor, her seferinde bellekten alınması gerekiyor.

English: 
No, it's not cached
broadly speaking we believe something going on there, but broadly speaking with no cache is about half the
Prefetch buffer if you want to get into the details, but we can see there's no cash
So if we think about the cPU in the atari, then it's having to access
memory
For everything so everything that the cPU needs to fetch on the Atari the instructions
The data from the array or a linked list and of course the next pointer from the linked list has to come from memory
So it takes the same amount of time we get are the two weather fetching data or fetching instructions on the raspBerry Pi however?
We still got the main body the cPU which is going to execute things and it has memory
as well
but in between there we have a cache in fact we actually probably have two caches one for Data and
one for instructions as

Turkish: 
Hayır, önbelleklenmemiş
genel olarak konuşursak, orada bir şeylerin olduğuna inanıyoruz, ancak genel olarak önbelleksiz konuşmanın yarısı
Ayrıntılara girmek istiyorsanız ön tamponu kullanın, ancak nakit olmadığını görebiliriz.
Yani eğer atari’deki CPU’yu düşünürsek, o zaman erişim sağlamak zorundadır.
bellek
Her şey için cPU'nun Atari'ye getirmesi gereken her şey için talimatlar
Dizideki veya bağlı listedeki ve tabii ki bağlı listedeki bir sonraki işaretçinin verileri bellekten gelmelidir.
Öyleyse, iki hava durumu veri alıyor mu yoksa raspBerry Pi ile ilgili talimatlar alıyorsak, aynı miktarda zaman alıyor.
Hala bir şeyler yürütecek olan ve hafızasına sahip olan CPU ana bedenimiz hala var.
yanı sıra
ama aramızda bir önbellek var aslında aslında Data için iki önbellek var aslında ve
talimatlar için bir

Turkish: 
Bir önceki videoda gördüğümüz gibi etkinleştirilip etkinleştirilmediğini görmek istiyorum.
Önbelleklerle erişim ve sonra onu almadılarsa onlar
Bellekten, öyleyse bu neden bir fark yaratıyor?
Elbette işler yine de en hızlı şekilde ataride uyanacak
Teorideki şey, temelde hafızadır, hafıza iki kat daha hızlı olan cPU’dan çok daha hızlıdır.
Böylece bellek, cpu'nun ihtiyaç duyduğu anda bir veri sağlayabilir. Nakit paraya gerek yok
Ahududu Pi'ye doğru ilerleyin ve elbette ki bunlar cPU bellekten çok daha hızlıdır.
Yani cpu bir şey istediğinde bellek sırasında beklemek zorunda?
sağlar
Şimdi programımızı çalıştırdığımızda ne olacağını çözelim.
dizi ile
ahududu Pi'de
İlk kullanımdan sonra girilecek olan her komut talimat önbelleğinde önbelleğe alınır.
Böylece ilk defa döngüden geçersek tüm talimatlar o döngüde kullanılacaktır.

English: 
I want to see if you activate as we looked at in the previous video is
Access to it via the caches, and then they if they haven't got it to get it
From memory, so why does this make a difference?
Surely things will still wake up so well on the atari the fastest
thing in the theory is basically the memory the memory is much faster than the cPU that's about twice as fast and
So the memory can provide a data exactly when the cPU needs it. There's no real need for cash
Move ahead to the raspberry Pi and the are make of course then the cPU is much faster than the memory
So when cPU ask for something it has to wait while the memory?
provides it
Now let's figure out how what happens when we run our program?
with the array
on the raspberry Pi
Every instruction after the first time will be accessed will be cached in the instruction cache
So the first time we go through the loop all the instructions are going to be used in that loop will have been cached in

Turkish: 
Talimat başlığı, böylece verileri hemen alabilirsiniz.
özellikle dizi ile biraz da bağlantılı bir liste ile daraltmak
Her seferinde sadece bir veya iki bayt almayın
Bir önbellek satırı dediğimize bir seferde 128 byte'lık pikaplar diyeceğim, bu yüzden zaten ihtiyaç duyduğumuz verilerin bir kısmını alacağız
Önbelleğe de girdiğiniz için, verilerden bazıları dizide zaten orada olacak
bu yüzden dizinin ahududu Pi'de daha hızlı çalışmasının nedeni tüm talimatların doğrudan ortaya çıkmasıdır.
Enstitü temel olarak bize bu talimatlar için hızlı bir şerit veriyor, bu yüzden hemen oraya varıyorlar.
Sadece ana bellekten alınması gereken ve önbelleklenecek veriler var
Yani aynı rota listesi programı ile olur
Bağlantılı liste şiiri ile çok önemli bir fark dışında, bir hafıza erişimi yapmak zorundayız.
Toplayacağımız veri değerini almak için
O zaman kediden geçen ana hafızaya geçmek zorunda olan başka bir hafıza erişimi yapmalıyız.
sonraki şeyin adresi için
yapmak zorundayız
Ana Hafıza ile karşılanabilecek hafıza talebi burada

English: 
The instruction cap so you can get these immediately the data
particularly with the array would also collapse a bit with a linked list we
Don't get just one or two bytes in each time
I'll get what we call a cache line pickups 128 bytes in a go, so we'll get some of the data that we already need
Into the cache as well, so some of the data will already be there in the array more so with your right
so the reason of the array runs faster on the raspberry Pi is that all the instructions are coming straight out of the
Institute basically giving us a fast lane for those instructions, so they get there immediately
There's only the data that needs to get from main memory, which will get cached as well
So the same happens with the route list program
Except for one crucial difference with the linked list poem we have to make one memory access
to get the data value that we're going to sum and
Then we have to make another memory access which has to go through the cat into main memory
for the address of the next thing
we have to make to
Memory request which may get satisfied by main Memory here

Turkish: 
Dizimiz hangisi?
Önbellek yüzünden ve ilgilendiğimiz değer için sadece bir tane yapmalıyız.
Bir tür hızlı geçiş talimatı alıyoruz ve bu nedenle bir sonraki işaretçiyi almak için bu ikinci bellek erişimini yapmak zorunda değiliz.
Bu, programın bittiğine dair bir aristilin, atari için iki kat daha hızlı çalıştığı anlamına geliyor, çünkü her şey geliyor
hafızanın bir talimat mı yoksa bir kitap mı okuduğunuz önemli değil.
Veri bit
Her seferinde hala bellekten gelecek, bu yüzden aslında değerin önü zaten önceden hesaplanmış olan bellekte hesaplanmış demektir.
Biraz daha hızlı, yani, belki% 10 daha hızlı konuşuyoruz. Gerçekten bir milyar değil, bu yüzden biraz hız avantajı elde ediyoruz
Şimdi bunun böyle olduğunu gösterelim
Programın aynı versiyonunu ataride kullandım ve şimdi de Atarilik için farkı atari yönlendiricisinde çalıştırdım.
Orada kullanıyoruz ve şahin şahin 68000 işlemcinin biraz daha geç bir versiyonuna sahip.
önbelleği olan

English: 
Where's our the array one?
We only have to make one for the value that we're interested in and because of the cache
We get sort of a fast passing instructions, and so actually not having to do that second memory access to get the next pointer here
Means that this the arraylist of the program ends are working about twice as fast on the atari because everything is coming from
memory it doesn't matter whether you're reading an instruction or reading a
bit of Data
It's still going to come from memory each time so actually the front of the value is already pre-calculated in memory means that actually runs
Slightly faster, I mean, we're talking perhaps 10% faster. Not really a billion so we get a slight speed benefit
Now to show that this is the case
I took the same version of the program on the atari and ran it on the atari router now the difference for the AtAri
St. We use there and the Falcon is that the falcon has a slightly later version of the 68000 processor
which has a cache

Turkish: 
İçinde hem talimatlar hem de veri önbelleği ve bunu çalıştırdığımda çıkan zamanlar ortaya çıktı.
Yani dizi 46 saat tene oldu zaten çok daha hızlı işlemci, ve bağlantı listesi
oldu
58.5
Saat, Falcon'da bunu yapıyor, çünkü önbelleğin var. Ahududu Pi'deki gibiler.
Dizi sürümü, tamamen aynı programın aynı makine koduyla aynı trafik olmasıyla sonuçlanır
Çünkü orada önbellek var dizisi sürüm daha hızlı olmalarını
Profesyonel ve bu tür önbellek yağ paketleri yerine, her zaman ana belleğe gitmek zorunda
demek istediğim
ışınlama bağlantılı liste sürümünden daha hızlı hale gelir
Şimdi onlara henüz konuşmadığımız diğer şeyleri söyleyin. AtAri'de neden ters dizi daha hızlı?
Buna basit cevap
Sadece bir değişiklik yapmanıza izin veren altı 8000'deki talimatlarını biraz farklı kullanır.
Hepsi bir talimatta olmayan sıfır dal ile test etme

English: 
In it both instructions and data cache and when I ran that on there the times that came out
So the array was 46 clock ticks is much faster processor anyway, and the link list
was
58.5
Clock ticks so on the Falcon because you've got the cache. They're just like on the raspberry Pi
The array version ends up being traffic exactly the same program exactly the same machine code
Because you've got the cache there the array version ends up being faster because the instructions of their
Professional and that sort of fat packs from the cache rather having to go to main memory each time
mean that the
irradiation becomes faster than the linked list version
Now tell them other things we haven't talked about yet. Why is the reverse array faster on the AtAri?
Simple answer to that it
Just uses slightly different instructions their instructions on the six 8000 that allow you to do a decrement
Testing with zero branch which isn't all in one instruction

English: 
So you can actually make the code slightly more compact and run slightly faster again. It's a small enough time
Why then is the imac significantly faster? We're getting sort of five times faster?
Well that's because I use a slightly different compiler that I use the clang C
Compiler on the IMac rather than GCC for the other two and it cheats it
It squats that you've got an array axises in the loop, and it says well
Okay, rather than doing a loop around one array access
I will do a loop around eight array accesses all in one go
So it actually removes some of the tests for the loop and it makes the program much faster for the compilers being clever
And optimizing the program
So it runs faster the answer to whether the raise faster than the link list or not?
Very much depends on how you cpu in the machine that you've built is configured to actually execute the code
So you can't make assumptions?

Turkish: 
Böylece kodu biraz daha küçük hale getirebilir ve yeniden biraz daha hızlı çalışabilirsiniz. Yeterince küçük bir zaman
Öyleyse neden imac çok daha hızlı? Beş kat daha hızlı mıyız?
Çünkü ben Clang kullandığımdan biraz farklı bir derleyici kullandım.
Diğer ikisi için GCC yerine IMac derleyici ve onu aldatıyor
Döngüde bir dizi eksenine sahip olduğunuzu gizliyor ve iyi diyor
Tamam, bir dizi erişim etrafında bir döngü yapmak yerine
Tek seferde sekiz dizi erişimi etrafında bir döngü yapacağım
Bu yüzden döngü için yapılan testlerden bazılarını kaldırır ve derleyicilerin akıllı olması için programı çok daha hızlı hale getirir
Ve programı optimize etmek
Yani, bağlantı listesinden daha hızlı bir yükseltme yapıp yapmama cevabı daha hızlı çalışıyor mu?
Çok şey, oluşturduğunuz makinedeki cpu işlemlerinin, kodu gerçekten yürütecek şekilde nasıl yapılandırıldığına bağlıdır.
Yani varsayımlarda bulunamazsınız?

Turkish: 
Bir cpu'nun kodları nasıl uygulayacağı hakkında, aynı şeyde bile olup bittiğini görmek için testi gerçekten yapmanız gerekiyor.
mimarlık ailesi Falcon'daki altı 8006 8030 arasındaki farkın
Yardım Topluluğunun bağlantı listesinin doğru olmadığı durumdan daha yavaş olduğu yerlerde yaptıkları yardım üzerine yaptığımız varsayımlar
Falcon ve ahududu Pi veya iMac'teki X86 yongası gibi tamamen farklı bir mimariye geçtiğinizde
Sonra tekrar farklı etkiler elde edersiniz, yani en iyi şey, böyle bir soru ile karşı karşıya kaldığınızda ve bundan emin olamadığınızda
Bazı testler yapın ve gerçek verileri toplayın; neler olduğunu görebileceksiniz
yapabildin mi

English: 
About how a cpu will execute code you really need to do the test to see what's happening even within the same
architecture family the difference between the six 8006 8030 in the Falcon mean that
Assumptions we make based on what they charity did where the Rally was slower than the link list aren't true on
The Falcon and when you move it on to a completely different architecture like the raspberry Pi or the X86 chip in the iMac
Then again you get different effects, so the best thing is when you're faced with a question question like this, and you're not sure
Come up with some test and collect real data, and you'll be able to see what's going on
could you
