Benim yaklaşımım. Çekirdek - Motor. - sayfa 83

 
Реter Konow :
Motor ve danışman iletişim akışı içinde çalışır. Her tablo hücresi birkaç karakterdir. Buna ek olarak, - diğer birçok öğe değerlerini, durumlarını vb. iletir. Dizeleri hızlı bir şekilde değiş tokuş etmeniz ve OnChartEvent() olay kuyruğunu yüklememeniz gerekir.

SQL alın ve beyninizi terletmeyin :-)

 
Nikolai Semko :
Kaynaklar ve birlik yardımıyla bunu nasıl yapacağınıza dair bir düşüncenizin bile olmadığını söylemek istemez misiniz?
Sizi temin ederim ki bu en hızlı çözüm.
Kıvrımları hareket ettirelim.

Senden sonra Nicholas.

Sendika ile bir varyant önerdiniz, ancak bir örnek göstermediniz. Sonra CharArrayToString ve StringToCharArray'e geçtim. Şimdi yine sendikadan bahsediyorsun.

Yani, bir dizeyi bir tılsım haline getirmek ve sonra geri almak, ardından dizeleri kırmak (dizeler, parametre numaralarının ve değerlerinin bir derlemesini içerir), bu en iyi çözüm mü?

 
İlgi uğruna, sendika seçeneğini deneyeceğim. Ve CharArrayToString ve StringToCharArray ile. Her ne kadar içgüdüm bana MT nesnelerinin tanımı yoluyla iletişimden daha hızlı olmanın pek mümkün olmadığını söylüyor. Ancak yanılıyor olabilirim. Göreceğiz...
 
Реter Konow :

Senden sonra Nicholas.

Seni işini yapmaktan alıkoymak istemiyorum. Bunu kendin yapman benim için önemli. Aksi halde anlamazsınız.
Peter, söyle bana, double, long ve int'yi aktarmak için dizeleri de kullanıyor musun?
 
Nikolai Semko :
Peter, söyle bana, double, long ve int'yi aktarmak için dizeleri de kullanıyor musun?

Parametre çekirdeği tek bir dizidir. Ve string türündedir . Bir nedenden dolayı, genel bir türdür. Çok rahat. Herhangi bir değer kaydedildi ve ardından istenen türe yol açtı.

Aksi takdirde çok sayıda parametre çekirdeği yapmak gerekecektir. Her biri, değer türü için. Sonuç olarak, parametre sahipliği, bunların indekslenmesi, kayıt yeri ve çok daha fazlası ile ilgili karışıklık olacaktır.

 
Nikolai Semko :
Seni işini yapmaktan alıkoymak istemiyorum. Bunu kendin yapman benim için önemli. Aksi halde anlamazsınız.

Trollemeyelim. Mentor tonu uygun değil. Bu çalışmada daha çok anlıyorum.


Nikolai, senin versiyonunu deneyeceğimi söyledim.)) O halde deneyeceğim.

 
Maxim Kuznetsov :

SQL alın ve beyninizi terletmeyin :-)

Sanki "beyninle uğraşma" hakkında devam ediyormuş gibi :-)

Bugün kibarım ve hiç de kötü değilim ..

Peter, dizi üzerinde canavar yaratmamak için geliştirme için "görsel programlama" (sadece bir GUI değil) hakkında,
örneğin Oracle'a bakın. Tartışmasız liderlerden biri

Görsel düzenleyici ücretsizdir ( sanal makine ile birlikte) işte burada; https://apex.oracle.com/en/

Başlamak için, "Aptallar için SQL'in Başlangıcı" kategorisinden bir kitap ve birkaç günlük boş zaman yeterlidir.

Home
  • apex.oracle.com
Oracle APEX makes it easy to build beautiful apps that are responsive, accessible, and can be effortlessly customized to fit your company's brand and personality. The apps you build are responsive out-of-the-box and are designed to work well regardless of screen size or form factor. Our comprehensive set of modern UI components are all built to...
 
Реter Konow :

Trollemeyelim. Mentor tonu uygun değil. Bu çalışmada daha çok anlıyorum.

Seni bu konuda caydırmak gibi bir amacım yok.
Bende o ton yoktu. Sadece birkaç kez sizinkinden çok daha hızlı olan kodu sizin için öğrenip daha hızlı yöntemler uygulayacağınızı umarak gönderdim, ancak bundan hiç faydalanmadınız.

Neden nankör bir iş yapayım ki.
 
Реter Konow :

Parametre çekirdeği tek bir dizidir. Ve string türündedir . Bir nedenden dolayı, genel bir türdür. Çok rahat. Herhangi bir değer kaydedildi ve ardından istenen türe yol açtı.

Aksi takdirde çok sayıda parametre çekirdeği yapmak gerekecektir. Her biri, değer türü için. Sonuç olarak, parametre sahipliği, bunların indekslenmesi, kayıt yeri ve çok daha fazlası ile ilgili karışıklık olacaktır.

Çok yönlülük genellikle yavaşlıkla eş anlamlıdır ve hatta daha çok tanga ile eş anlamlıdır.
Bir örnek vereceğim.

Bir keresinde WebRequest kullanarak bir kripto borsasından alınan bir dizgiyi ayrıştırıyordum. Ve kendisi tarafından "yüksek hızlı C ++ kitaplığından" taşınan Sergeev JSON kitaplığı aracılığıyla ayrıştırma gerçekleştirdi. Ve hızın bir şekilde çok yetersiz olduğunu fark ettim. Orada her şey "evrensel" çizgilerle gerçekleştirildi.

Düşük hızın sebebinin stringler olduğunu anladım ve string fonksiyonlarını kullanmaktan kurtulmak istedim ve direkt olarak uchar dizisinden bir parsing fonksiyonu yazdım. Sonuç beni çok şaşırttı. Ayrıştırma hızım .... (drumroll) 800 kat daha hızlıydı. Tüm dizeyi JSON aracılığıyla ayrıştırmak 0,3 saniye sürdüyse, işlevim aracılığıyla yarım milisaniyeden az sürdü.

İşte benim uchar dizisi aracılığıyla yaptığım ayrıştırma örneği.

 
Nikolai Semko :

Çok yönlülük genellikle yavaşlıkla eş anlamlıdır ve hatta daha çok tanga ile eş anlamlıdır.
Bir örnek vereceğim.

Bir keresinde WebRequest kullanarak bir kripto borsasından alınan bir dizgiyi ayrıştırıyordum. Ve kendisi tarafından "yüksek hızlı C ++ kitaplığından" taşınan Sergeev JSON kitaplığı aracılığıyla ayrıştırma gerçekleştirdi. Ve hızın bir şekilde çok yetersiz olduğunu fark ettim. Orada her şey "evrensel" çizgilerle gerçekleştirildi.

Dizelerden uzaklaşmak istedim ve doğrudan uchar dizisinden bir ayrıştırma işlevi yazdım. Sonuç beni çok şaşırttı. Ayrıştırma hızım .... (drumroll) 800 kat daha hızlıydı.

İşte benim uchar dizisi aracılığıyla yaptığım ayrıştırma örneği.

json ayrıştırma (ve genel olarak ayrıştırma) ayrı bir hikayedir ;-)

Kripto ile çalışan çok büyük tek iş parçacıklı, betikli bir uygulama sorun yaşıyor.
Şüpheler her yere düştü ve her şey optimize edilmediğinde. Pusu, üçüncü taraf bir json ayrıştırıcısında olduğu ortaya çıktı :-)

sadece “evrensel” kütüphaneler evrensellik için keskinleştirilmiştir ve en karmaşık json ile çalışır, ancak bölgemizde böyle kütüphaneler yoktur,
Evet ve tüm parseller çok kısa.

Ve evet, MQL'de metin ayrıştırma hala bir zevktir :-) Peki, metin işleme için tasarlanmamıştır. Yani, yapabilirsin, ama bu @oops..

Diziler, siparişler - bu MQL'nin yoludur