Rastgele bir sonuç. Derlerken, dizi boyutu değerine sahip bir bellek hücresine erişim dağıtılır ve dizi boyutu, dizi oluşturulduğunda, dizi dinamik olsa bile önceden bir bellek hücresine alınır ve yerleştirilir. dizi boyutu ve değişkenin değeri erişim zamanında aynı olacaktır.
Pekala, ifadeye bakılırsa, 3-4 bilgisayar bilimi dersinde derleyicilerin ne yaptığı ... genel olarak, yeterince gerekli bir personel seviyesinin MCL ortamında çok gergin olmama izin vermeyeceğini umuyorum)
İnanın bana, ortalama bir öğrenci genellikle FIVT'dir - artı ile birlikte sadece sıfırdır), çünkü. deneyim sıfırdır ve deneyimsiz bilgi çabucak hiçbir yere gitmez (unutulur) ve örnekleri çok tuhaftır, öğrenci bunların nerede ve nasıl kullanılabileceğini anlamadan yıllar geçer. Bu, deneyimli bir programcı ile karşılaştırıldığında.
İnanın bana, ortalama bir öğrenci genellikle FIVT'dir - artı ile birlikte sadece sıfırdır), çünkü. deneyim sıfırdır ve deneyimsiz bilgi çabucak hiçbir yere gitmez (unutulur) ve örnekleri çok tuhaftır, öğrenci bunların nerede ve nasıl kullanılabileceğini anlamadan yıllar geçer. Bu, deneyimli bir programcı ile karşılaştırıldığında.
Bu temiz. Derleyici yapmayı neden öğreneceğimiz belli değil. Kendi dilinizi nasıl oluşturacağınızı öğretmek gibi. dilin bir sınıf olduğu açıktır, ancak her kuş a priori uçamaz. Yukarıda belirtildiği gibi, Hatalar, Hatalar, Sorular ayrıca hareket halindeyken derlemeyi optimize etme sorunuyla da ilgilidir.
Konu genellikle tanımlarla ilgilidir, döngülerle ilgili değildir))
Örneğin, kullanıcı tanımlı işlevler gibi kod tanımlamanın mantıklı olup olmadığı benim için hala net değil. Kodun yürütülebilir dosyada daha hızlı yürütülmesi umuduyla. Yoksa bir yanılsama mı? Değiştirme yalnızca bir derleme öncesi eylem olduğundan ve yalnızca derlemeyi hızlandırmak mantıklıdır.
Konu genellikle tanımlarla ilgilidir, döngülerle ilgili değildir))
Örneğin, kullanıcı tanımlı işlevler gibi kod tanımlamanın mantıklı olup olmadığı benim için hala net değil. Kodun yürütülebilir dosyada daha hızlı yürütülmesi umuduyla. Yoksa bir yanılsama mı? Değiştirme yalnızca bir derleme öncesi eylem olduğundan ve yalnızca derlemeyi hızlandırmak mantıklıdır.
Genişletilmiş formuna karşı 3 harici fonksiyonun kullanıldığı bir örneği attım. Onlar. hızlanma olmayacak
Внешние функции, определенные в другом модуле, должны быть явно описаны. Описание включает в себя тип возвращаемого значения, имя функции и набор входных параметров с их типами. Отсутствие такого описания может привести к ошибкам при компиляции, компоновке или выполнении программы. При описании внешнего объекта используйте ключевое слово С...
Genişletilmiş formuna karşı 3 harici fonksiyonun kullanıldığı bir örneği attım. Onlar. hızlanma olmayacak
Açık. O zaman fxsaber'a merhaba. Her şeyi tanımlamanın hayranıyım.
Alexandr Andreev :
bana aksini kanıtla
ve sonra benim testimde bir nedenden dolayı aynılar
ArraySize() ve değişkene gelince. Her neyse, bu konuya dönelim. İşte değiştirdiğim test. Döngü PI sayısını sayar. İlk örnekte, döngü koşulunda ArraySize() kullanılmıştır. İkinci örnekte, num_steps değişkeni kullanılmıştır. Bir fark var.
ArraySize() işlevi
voidOnStart ()
{
int arr[];
int num_steps = ArrayResize (arr, 1000000000 );
double x, pi, sum= 0.0 ;
double step = 1.0 /( double )num_steps;
ulong t = GetMicrosecondCount ();
for ( int i = 0 ; i< ArraySize (arr) ; i++)
{
x = (i + . 5 ) * step;
sum = sum + 4.0 / ( 1.0 + x * x);
}
pi = sum*step;
t = GetMicrosecondCount () - t;
printf ( "The value of PI is %1.12f " , pi);
PrintFormat ( "Total time to calculate PI was %5.3f ms\n" , t / 1000.0 );
}
Üç komut dosyası çalışır.
2020.11 . 0223 : 56 : 51.556 TestScript (USDJPY,M1) The value of PI is3.1415926535902020.11 . 0223 : 56 : 51.556 TestScript (USDJPY,M1) Total time to calculate PI was 4049.179 ms
2020.11 . 0223 : 56 : 51.556 TestScript (USDJPY,M1)
2020.11 . 0223 : 56 : 57.928 TestScript (USDJPY,M1) The value of PI is3.1415926535902020.11 . 0223 : 56 : 57.928 TestScript (USDJPY,M1) Total time to calculate PI was 4183.364 ms
2020.11 . 0223 : 56 : 57.928 TestScript (USDJPY,M1)
2020.11 . 0223 : 57 : 03.884 TestScript (USDJPY,M1) The value of PI is3.1415926535902020.11 . 0223 : 57 : 03.884 TestScript (USDJPY,M1) Total time to calculate PI was 4034.098 ms
Değişken num_steps
voidOnStart ()
{
int arr[];
int num_steps = ArrayResize (arr, 1000000000 );
double x, pi, sum= 0.0 ;
double step = 1.0 /( double )num_steps;
ulong t = GetMicrosecondCount ();
for ( int i = 0 ; i< num_steps ; i++)
{
x = (i + . 5 ) * step;
sum = sum + 4.0 / ( 1.0 + x * x);
}
pi = sum*step;
t = GetMicrosecondCount () - t;
printf ( "The value of PI is %1.12f " , pi);
PrintFormat ( "Total time to calculate PI was %5.3f ms\n" , t / 1000.0 );
}
Üç komut dosyası çalışır.
2020.11 . 0300 : 08 : 09.269 TestScript (USDJPY,M1) The value of PI is3.1415926535902020.11 . 0300 : 08 : 09.271 TestScript (USDJPY,M1) Total time to calculate PI was 3955.325 ms
2020.11 . 0300 : 08 : 09.271 TestScript (USDJPY,M1)
2020.11 . 0300 : 08 : 15.578 TestScript (USDJPY,M1) The value of PI is3.1415926535902020.11 . 0300 : 08 : 15.578 TestScript (USDJPY,M1) Total time to calculate PI was 3950.568 ms
2020.11 . 0300 : 08 : 15.578 TestScript (USDJPY,M1)
2020.11 . 0300 : 08 : 22.469 TestScript (USDJPY,M1) The value of PI is3.1415926535902020.11 . 0300 : 08 : 22.469 TestScript (USDJPY,M1) Total time to calculate PI was 3927.110 ms
Açık. O zaman fxsaber'a merhaba. Her şeyi tanımlamanın hayranıyım.
ArraySize() ve değişkene gelince. Her neyse, bu konuya dönelim. İşte değiştirdiğim test. Döngü PI sayısını sayar. İlk örnekte, döngü koşulunda ArraySize() kullanılmıştır. İkinci örnekte, num_steps değişkeni kullanılmıştır. Bir fark var.
ArraySize() işlevi
Üç komut dosyası çalışır.
Değişken num_steps
Üç komut dosyası çalışır.
Bu tür hesaplamalarda net bir fark yoktur. Hepsini tek bir koda koydum ve sonuçlar farklı, ilk seçeneğin kazandığı yer
)) µl'deki herhangi bir dizi, çoğu dilde olduğu gibi dizinin mevcut boyutundan sorumlu olan bir değişkene sahiptir.
ArraySize işlevi , derleyiciye bu değişkenin değerini döndürmesini söyler, yani. bu işlev yerine doğrudan bu değişkeni değiştirir. mikrolitre cinsinden diziler referanslara eşit olamaz, bu durumda işaretçi açıkça bu değişkene, doğrudan bellekteki kroket adresine açıktır. Teknik olarak, tüm bu testler iki ortak değişkeni karşılaştırma girişimidir. Bu, fonksiyonların genişletilmesinin özelliğidir, benim örneğimde, 3'ü doğrudan döngünün gövdesinde bulunan 0 fonksiyonu bağışlayan 4 fonksiyon, yani. 40000000000 işlev çağrılarının hiçbiri ile karşılaştırması yoktur. Ve farkedilemeyecek kadar küçük bir örtük fark görüyoruz - çünkü. bir yürütülebilir dosyaya kod koyuyor... aynı şeyi karşılaştırıyoruz.
ve tüm bu hesaplamalar - ne kadar karmaşıklarsa, o kadar az anlam ifade ederler.
Bir durumda yüzlerce fonksiyonun çağrılacağı, fonksiyonlar içinde fonksiyonların çağrılacağı bir örnek vermek daha kolay... Ve diğerinde, tüm bunlar genişletilmiş formda - ve hiçbir fark olmayacak. T, k. ArraySize(mas)==mas[]. boy
Bazı nedenlerden dolayı pi ile bir örnek olmasına rağmen, bu hala tamamen rastgele bir aşırı kilo olmasına rağmen, aşırı kilo sıklığı (baskı) açısından hala bir fark var .....
ve değişken ile değişkeni açıkça karşılaştırmaya çalışılmasa da 1 milyar ihracat başına 1 ms'ye eşittir, bu nedenle yayılma daha da büyümüştür))
Bu tür hesaplamalarda net bir fark yoktur. Hepsini tek bir koda koydum ve sonuçlar farklı, ilk seçeneğin kazandığı yer
)) µl'deki herhangi bir dizi, çoğu dilde olduğu gibi dizinin mevcut boyutundan sorumlu olan bir değişkene sahiptir.
ArraySize işlevi , derleyiciye bu değişkenin değerini döndürmesini söyler, yani. bu işlev yerine doğrudan bu değişkeni değiştirir. mikrolitre cinsinden diziler referanslara eşit olamaz, bu durumda işaretçi açıkça bu değişkene, doğrudan bellekteki kroket adresine açıktır. Teknik olarak, tüm bu testler iki ortak değişkeni karşılaştırma girişimidir. Bu, fonksiyonların genişletilmesinin özelliğidir, benim örneğimde, 3'ü doğrudan döngünün gövdesinde bulunan 0 fonksiyonu bağışlayan 4 fonksiyon, yani. 40000000000 işlev çağrılarının hiçbiri ile karşılaştırması yoktur. Ve farkedilemeyecek kadar küçük bir örtük fark görüyoruz - çünkü. bir yürütülebilir dosyaya kod koyuyor... aynı şeyi karşılaştırıyoruz .
ve tüm bu hesaplamalar - ne kadar karmaşıklarsa, o kadar az anlam ifade ederler.
Bir durumda yüzlerce fonksiyonun çağrılacağı, fonksiyonlar içinde fonksiyonların çağrılacağı bir örnek vermek daha kolay... Ve diğerinde, tüm bunlar genişletilmiş formda - ve hiçbir fark olmayacak. T, k. ArraySize(mas)==mas[].boy
Döngünün gövdesinde ne yapıldığı önemli değildir. Bu sadece test için bir yük. Örnekler, bir çağrıyı bir döngü koşulundaki bir işlev veya değişkenle karşılaştırır.
Montajcı konusunda uzman değilim, ancak montajcı talimatları açısından bunların aynı şey olmadığını düşünüyorum. Ve sınıfa da sarılırsa, o zaman aynı şey değil.
İşlevin, bir bellek hücresinden bir değer almak için fazladan bir talimatı vardır, yani işlev, bir değer için bellek hücresine erişir ve ancak o zaman sonucu döndürür. Değişken zaten bu değere sahiptir, değişken bir yere gitmez, hemen sonucu döndürür.
Döngünün gövdesinde ne yapıldığı önemli değildir. Bu sadece test için bir yük. Örnekler, bir çağrıyı bir döngü koşulundaki bir işlev veya değişkenle karşılaştırır.
Montajcı konusunda uzman değilim, ancak montajcı talimatları açısından bunların aynı şey olmadığını düşünüyorum. Ve sınıfa da sarılırsa, o zaman aynı şey değil.
İşlevin, bir bellek hücresinden bir değer almak için fazladan bir talimatı vardır, yani işlev, bir değer için bellek hücresine erişir ve ancak o zaman sonucu döndürür. Değişken zaten bu değere sahiptir, değişken bir yere gitmez, hemen sonucu döndürür.
MQL5.com web sitesine giriş yapmak için çerezlerin kullanımına izin vermelisiniz.
Lütfen tarayıcınızda gerekli ayarı etkinleştirin, aksi takdirde giriş yapamazsınız.
Hesabınıza giriş yaptınız. İki faktörlü kimlik doğrulama devre dışı bırakıldı. Yeniden kurup yeni bir QR kodu tarayın veya iki faktörlü kimlik doğrulama devre dışıyken devam edin.
Kodunuzda hiçbir şeyi karıştırmadınız, sizin için değer kim olacak?
ilk seçenekte olduğu gibi değiştirin
Evet, bunu özledim. Mesajımı düzeltti.
Rastgele bir sonuç. Derlerken, dizi boyutu değerine sahip bir bellek hücresine erişim dağıtılır ve dizi boyutu, dizi oluşturulduğunda, dizi dinamik olsa bile önceden bir bellek hücresine alınır ve yerleştirilir. dizi boyutu ve değişkenin değeri erişim zamanında aynı olacaktır.
Pekala, ifadeye bakılırsa, 3-4 bilgisayar bilimi dersinde derleyicilerin ne yaptığı ... genel olarak, yeterince gerekli bir personel seviyesinin MCL ortamında çok gergin olmama izin vermeyeceğini umuyorum)
İnanın bana, ortalama bir öğrenci genellikle FIVT'dir - artı ile birlikte sadece sıfırdır), çünkü. deneyim sıfırdır ve deneyimsiz bilgi çabucak hiçbir yere gitmez (unutulur) ve örnekleri çok tuhaftır, öğrenci bunların nerede ve nasıl kullanılabileceğini anlamadan yıllar geçer. Bu, deneyimli bir programcı ile karşılaştırıldığında.
İnanın bana, ortalama bir öğrenci genellikle FIVT'dir - artı ile birlikte sadece sıfırdır), çünkü. deneyim sıfırdır ve deneyimsiz bilgi çabucak hiçbir yere gitmez (unutulur) ve örnekleri çok tuhaftır, öğrenci bunların nerede ve nasıl kullanılabileceğini anlamadan yıllar geçer. Bu, deneyimli bir programcı ile karşılaştırıldığında.
Bu temiz. Derleyici yapmayı neden öğreneceğimiz belli değil. Kendi dilinizi nasıl oluşturacağınızı öğretmek gibi. dilin bir sınıf olduğu açıktır, ancak her kuş a priori uçamaz. Yukarıda belirtildiği gibi, Hatalar, Hatalar, Sorular ayrıca hareket halindeyken derlemeyi optimize etme sorunuyla da ilgilidir.
Konu genellikle tanımlarla ilgilidir, döngülerle ilgili değildir))
Örneğin, kullanıcı tanımlı işlevler gibi kod tanımlamanın mantıklı olup olmadığı benim için hala net değil.
Kodun yürütülebilir dosyada daha hızlı yürütülmesi umuduyla.
Yoksa bir yanılsama mı? Değiştirme yalnızca bir derleme öncesi eylem olduğundan ve yalnızca derlemeyi hızlandırmak mantıklıdır.
Konu genellikle tanımlarla ilgilidir, döngülerle ilgili değildir))
Örneğin, kullanıcı tanımlı işlevler gibi kod tanımlamanın mantıklı olup olmadığı benim için hala net değil.
Kodun yürütülebilir dosyada daha hızlı yürütülmesi umuduyla.
Yoksa bir yanılsama mı? Değiştirme yalnızca bir derleme öncesi eylem olduğundan ve yalnızca derlemeyi hızlandırmak mantıklıdır.
Genişletilmiş formuna karşı 3 harici fonksiyonun kullanıldığı bir örneği attım. Onlar. hızlanma olmayacak
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
uzmanlar için soru #define
Alexander Andreev , 2020.11.02 19:49
500r için soru (doğrulama olmadan), hangi yöntem daha hızlıdır. üst yöntemde kaç tane harici işlevin çağrıldığını görün
Genişletilmiş formuna karşı 3 harici fonksiyonun kullanıldığı bir örneği attım. Onlar. hızlanma olmayacak
Açık. O zaman fxsaber'a merhaba. Her şeyi tanımlamanın hayranıyım.
bana aksini kanıtla
ve sonra benim testimde bir nedenden dolayı aynılar
ArraySize() ve değişkene gelince. Her neyse, bu konuya dönelim.
İşte değiştirdiğim test. Döngü PI sayısını sayar.
İlk örnekte, döngü koşulunda ArraySize() kullanılmıştır.
İkinci örnekte, num_steps değişkeni kullanılmıştır.
Bir fark var.
ArraySize() işlevi
Üç komut dosyası çalışır.
Değişken num_steps
Üç komut dosyası çalışır.
Açık. O zaman fxsaber'a merhaba. Her şeyi tanımlamanın hayranıyım.
ArraySize() ve değişkene gelince. Her neyse, bu konuya dönelim.
İşte değiştirdiğim test. Döngü PI sayısını sayar.
İlk örnekte, döngü koşulunda ArraySize() kullanılmıştır.
İkinci örnekte, num_steps değişkeni kullanılmıştır.
Bir fark var.
ArraySize() işlevi
Üç komut dosyası çalışır.
Değişken num_steps
Üç komut dosyası çalışır.
Bu tür hesaplamalarda net bir fark yoktur. Hepsini tek bir koda koydum ve sonuçlar farklı, ilk seçeneğin kazandığı yer
)) µl'deki herhangi bir dizi, çoğu dilde olduğu gibi dizinin mevcut boyutundan sorumlu olan bir değişkene sahiptir.
ArraySize işlevi , derleyiciye bu değişkenin değerini döndürmesini söyler, yani. bu işlev yerine doğrudan bu değişkeni değiştirir. mikrolitre cinsinden diziler referanslara eşit olamaz, bu durumda işaretçi açıkça bu değişkene, doğrudan bellekteki kroket adresine açıktır. Teknik olarak, tüm bu testler iki ortak değişkeni karşılaştırma girişimidir. Bu, fonksiyonların genişletilmesinin özelliğidir, benim örneğimde, 3'ü doğrudan döngünün gövdesinde bulunan 0 fonksiyonu bağışlayan 4 fonksiyon, yani. 40000000000 işlev çağrılarının hiçbiri ile karşılaştırması yoktur. Ve farkedilemeyecek kadar küçük bir örtük fark görüyoruz - çünkü. bir yürütülebilir dosyaya kod koyuyor... aynı şeyi karşılaştırıyoruz.
ve tüm bu hesaplamalar - ne kadar karmaşıklarsa, o kadar az anlam ifade ederler.
Bir durumda yüzlerce fonksiyonun çağrılacağı, fonksiyonlar içinde fonksiyonların çağrılacağı bir örnek vermek daha kolay... Ve diğerinde, tüm bunlar genişletilmiş formda - ve hiçbir fark olmayacak. T, k. ArraySize(mas)==mas[]. boy
Bazı nedenlerden dolayı pi ile bir örnek olmasına rağmen, bu hala tamamen rastgele bir aşırı kilo olmasına rağmen, aşırı kilo sıklığı (baskı) açısından hala bir fark var .....
ve değişken ile değişkeni açıkça karşılaştırmaya çalışılmasa da 1 milyar ihracat başına 1 ms'ye eşittir, bu nedenle yayılma daha da büyümüştür))
Bu tür hesaplamalarda net bir fark yoktur. Hepsini tek bir koda koydum ve sonuçlar farklı, ilk seçeneğin kazandığı yer
)) µl'deki herhangi bir dizi, çoğu dilde olduğu gibi dizinin mevcut boyutundan sorumlu olan bir değişkene sahiptir.
ArraySize işlevi , derleyiciye bu değişkenin değerini döndürmesini söyler, yani. bu işlev yerine doğrudan bu değişkeni değiştirir. mikrolitre cinsinden diziler referanslara eşit olamaz, bu durumda işaretçi açıkça bu değişkene, doğrudan bellekteki kroket adresine açıktır. Teknik olarak, tüm bu testler iki ortak değişkeni karşılaştırma girişimidir. Bu, fonksiyonların genişletilmesinin özelliğidir, benim örneğimde, 3'ü doğrudan döngünün gövdesinde bulunan 0 fonksiyonu bağışlayan 4 fonksiyon, yani. 40000000000 işlev çağrılarının hiçbiri ile karşılaştırması yoktur. Ve farkedilemeyecek kadar küçük bir örtük fark görüyoruz - çünkü. bir yürütülebilir dosyaya kod koyuyor... aynı şeyi karşılaştırıyoruz .
ve tüm bu hesaplamalar - ne kadar karmaşıklarsa, o kadar az anlam ifade ederler.
Bir durumda yüzlerce fonksiyonun çağrılacağı, fonksiyonlar içinde fonksiyonların çağrılacağı bir örnek vermek daha kolay... Ve diğerinde, tüm bunlar genişletilmiş formda - ve hiçbir fark olmayacak. T, k. ArraySize(mas)==mas[]. boy
Döngünün gövdesinde ne yapıldığı önemli değildir. Bu sadece test için bir yük.
Örnekler, bir çağrıyı bir döngü koşulundaki bir işlev veya değişkenle karşılaştırır.
Montajcı konusunda uzman değilim, ancak montajcı talimatları açısından bunların aynı şey olmadığını düşünüyorum.
Ve sınıfa da sarılırsa, o zaman aynı şey değil.
İşlevin, bir bellek hücresinden bir değer almak için fazladan bir talimatı vardır, yani işlev, bir değer için bellek hücresine erişir ve ancak o zaman sonucu döndürür.
Değişken zaten bu değere sahiptir, değişken bir yere gitmez, hemen sonucu döndürür.
Döngünün gövdesinde ne yapıldığı önemli değildir. Bu sadece test için bir yük.
Örnekler, bir çağrıyı bir döngü koşulundaki bir işlev veya değişkenle karşılaştırır.
Montajcı konusunda uzman değilim, ancak montajcı talimatları açısından bunların aynı şey olmadığını düşünüyorum.
Ve sınıfa da sarılırsa, o zaman aynı şey değil.
İşlevin, bir bellek hücresinden bir değer almak için fazladan bir talimatı vardır, yani işlev, bir değer için bellek hücresine erişir ve ancak o zaman sonucu döndürür.
Değişken zaten bu değere sahiptir, değişken bir yere gitmez, hemen sonucu döndürür.
) iyi, bu şekilde çalışmıyor)
Neredeyse her koşuda lider değişir
bu bölüm en uzun