Programlama dillerinin daha yavaş performans göstermesi gerçekten kötü bir şey midir? [kapalı]


18

İşte böyle görüyorum.

Orada makine kodu ve çalışma şey için tüm bu bilgisayarlar ihtiyaçlarını bu. Bilgisayarlar programlama dillerini umursamazlar. Makine kodunun Perl, Python veya PHP'den gelmesi onlar için önemli değil. Programlama dilleri bilgisayara hizmet etmez. Programcılara hizmet ediyorlar.

Bazı programlama dilleri diğerlerinden daha yavaş çalışır, ancak bununla ilgili bir sorun yoktur. Çoğu durumda, programcıların aksi takdirde yapmak zorunda oldukları (yani bellek yönetimi) daha fazla şey yapmaları ve bu şeyleri yaparak, yapmaları gereken şeylerde daha iyidir - programcılara hizmet ederler.

Peki, programlama dillerinin daha yavaş performansı, gerçekten kötü bir şey midir?


22
ne şekilde daha yavaş? zaman, çalışma zamanı, yazma zamanı, başka bir metrik derlemek?
Matt Ellen

1
Hızlı bilgisayarların ve verimli makine dili üreten derleyicilerin, programcıların çok daha tembel olmasına izin vermeleri dışında açıkça iyi olduğunu belirtmek isterim. Ürünlerde performans sorunları olduğunda, bunun nedeni genellikle bellek yönetimi ve bildirimler gibi belirli şeylerin "hızlı" olduğunu varsaymaktır.
Mike Dunlavey

5
@Mike: Alternatif olarak, Jeff'in blogunda son zamanlarda güzelce topladığı bir tutum nedeniyle programlar yavaş çalışıyor: "Algoritmalar, RAM nasıl satın alınacağını bilmeyen insanlar içindir". Program O (N log n) zamanı yerine kübik zamanda çalışıyorsa, bilgisayar gücü gerçekten büyük problemler için önemli değildir.
David Thornley

2
@David: Sunucumuzda 512Gb'den fazla RAM alamıyoruz, bu yüzden şimdi daha iyi algoritmalar yazmamız gerekiyor.
JBRWilkinson

2
Darboğazların nerede olduğuna bağlıdır. Program G / Ç'de% 99,9 beklerse, programın kendisinin el işi mecliste yazılmış olandan 10 kat daha yavaş olması önemli değildir.

Yanıtlar:


50

Otomatik olarak kötü olduğunu sanmıyorum. Python, C ++ 'dan daha yavaştır, ancak her ikisi de yeterince hızlı olduğunda , Python, yavaş olsa bile eldeki sorun için en iyi seçim olabilir .

Her zaman bir ödünleşmedir. Küçük bir kerelik görevler için, aynı şeyi yapan bir C ++ uygulamasına göre bir Python betiği yazmak çok daha hızlıdır (benim için tipik örnek, bir tür toplu metin işleme veya bir dizin ağacını yürüyüş ve dosyalara bir şeyler yapmak olabilir), ve 100x daha yavaş olmasına rağmen 10 ms veya 1000 ms sürmesini umursamıyorum, çünkü yazıp test etmemin yarısı kadar zaman alabilir.

Tabii ki, Python C ++ kadar hızlı olsaydı iyi olurdu, bu yüzden "yavaş = kötü" ifadesine katılıyorum. Ama daha sonra, ne zaman o tradeoff (örneğin, std kullanarak) karar vermenize izin verdiği sürece bazı şeyler (diyelim, dizi dizileri kontrol ham dizileri üzerinde kontrol) yaparak istediğim kadar hızlı çalışan güçlü bir dil var. :vektör).


"Yavaş = kötü" olduğunu söylemedim. Yine de düşüncelerinizi paylaştığınız için teşekkürler.
Emanuil Rusev

9
+1 'yeterince hızlı' Bir uygulama 'çok yavaş / yeterince hızlı' değilse, yavaş kötüdür. Başka bir zaman önemli değil.
Kirk Broadhurst

4
+1 'yeterince hızlı'. Yaptığınız şeye bağlı olarak, programcının zamanı, yürütme süresindeki potansiyel tasarruflardan çok daha fazla olabilir.
Jonas

3
@Jonas: neredeyse hiç böyle değil, sadece programcı maaşını görüyorsunuz; uygulama "hadi, ne kadar zor, bok yazılım yığını" bağırmak boyunca sürünerek başlarını hayal kırıklığı içinde asılı kullanıcıların görmüyorum. Yavaş yazılım v hızlı yazılım TCO'sunu yayınladılarsa, önceliklerinizin satış borçlarınızın hemen değiştirildiğini görürsünüz.
gbjbaanb

1
@mcmcc: Oradaki diller hakkında değil, kullanıcı deneyimi hakkında konuşuyordum. Bir düğmeyi tıkladığınızda, hemen bir şey olması gerekir. Bir hesaplama başlattığınızda, yararlı bir ilerleme göstergesi olduğu sürece biraz zaman alması iyi olur.
Jonas

18

Oldukça basit - yavaş olmak kötü bir şeydir

zaman programı belli bir performans düzeyi gerektirir

çünkü bu performans olmadan gereksinimleri karşılamıyorsunuz.

Bu, sorguları kabul edilebilir bir sürede işlemesi gereken bir iş uygulamasından, herhangi bir zamanda ekranda çok fazla bilgi görüntülemesi gereken bir oyuna kadar her şey olabilir. Program yeterince hızlı değilse, o zaman işe yaramaz .


2
..ve genellikle gereksinimler bir tür "bir sayfayı getirmek için X saniyeden fazla bir süre içinde
yazılmıyor

1
@JBRWilkinson evet veya sistem çok yavaşsa, yeni performans gereksinimleri aniden belirecektir;)
Kirk Broadhurst

12

Şuna bak: bilgisayarlar aptal . Trig tablosu olan herhangi bir moronun takip edebileceği talimatları yürekten izlerler. Onlar kasten kastettiğiniz yerine söylediklerinizi yapmakta ısrar ediyorlar. Öz-yönelim ya da sezginin bir parçası değil. Bu korkunç.

Bir bilgisayarın bunun için yaptığı tek şey, hızlı. Gerçekten mi! Dosya dolabına sahip bir mafsal kafası bir veritabanı ile aynı işi yapabilir. Matbaayı kuran bazı adam Apache'nin yaptıklarını yapabilirdi. Ciddi anlamda! Ve yüzlerce ve yüzlerce yıldır, aslında. Bir bilgisayarın neden HİÇBİR ŞEY için iyi olduğu, hızıdır.

Bu nedenle (diğer dillerle karşılaştırıldığında) bilgisayar kullanmanın SADECE avantajı olmayan bir programlama dili kullanılamaz.


13
Önemli bir noktayı kaçırıyorsunuz: bilgisayarlar aptal, hızlı ve övgüye değer , oysa erratum humanum est.Ve birçok durumda bu öngörülebilirlik çok hızlı bir hızdan çok daha önemlidir.
SK-logic

5
Herhangi bir programlama dili bilgisayar hızından yararlanır. Orijinal OLPC bilgisayarlardan birinde bulunan Python işleri elimden çok daha hızlı yapıyor. Mevcut dizüstü bilgisayarımın (iki yıl önce satın alındı ​​ve o zamanlar en üst sıralarda değil), çoğu şekilde ilk ev bilgisayarımdan yaklaşık yüz bin ila milyon kat daha güçlü olduğunu unutmayın.
David Thornley

4
Bir bilgisayarın kullanmak için çok fazla enerji (özellikle sunucular) tükettiğinden ve enerji tüketimi (yeşil teknoloji) ile ilgili algılanan bir endişe olduğunu ve genellikle daha hızlı bir programın, yavaş program, böylece sayar (özellikle sunucularda, çok tüketen)
Coyote21

4
@ SK-logic Bilgisayarın öngörülebilirliği çok abartılı. Joseph Weizenbaum'un çok iyi işaret ettiği gibi, büyük sistem o kadar karmaşık olma eğilimindedir ki, hiçbir şekilde tahmin edilemezler ve kimse belli bir infazın sonucunu PREDICT edemez. Bu bir inanç veya umut meselesi haline gelir. Bir programın her zaman istediğinizi yapacağını resmen kanıtlayamazsınız (bu nedenle tahmin edilemez).
Omar Kohl

2
Yine de, (uygulama hızı) nihai hedef ise, neden hepimizi programlarımızı makine kodunda yazmıyoruz?
Emanuil Rusev

5

Bir programlama dili çok yüksek seviyede olabilir, "çok şey yapın", yine de çok hızlı olabilir. OCaml, PHP'den daha üst düzey bir dildir, ancak neredeyse C kadar hızlı bir kod üretir. Javascript, PHP kadar dinamiktir, ancak gerçekten hızlı bir şekilde yürütülebilir. Yani, bir tasarım değil, bir dil uygulaması ile ilgili bir konudur. Dinamik dillerin verimli bir şekilde uygulanması daha zordur, ancak imkansız değildir.


PHP gibi yavaş (çalışma açısından) kabul edilen dillerin daha hızlı çalışmak için uygulanabileceğini düşünüyor musunuz?
Emanuil Rusev

1
Zend Doktoru kimse var mı?
user281377

Bunu başka bir şekilde sormama izin verin - PHP'nin uygulanmasında yavaş olan nedir?
Emanuil Rusev

6
Evet, daha iyi uygulanabilir. Çok fazla çaba gerektirecek - örneğin, dinamik türleri özelleştirmek için soyut bir yorum, oldukça zor bir şeydir ve henüz iyi araştırılmamıştır. Statik bir dili yüksek verimli bir koda çevirmek çok daha kolaydır. Yani, PHP yavaş olduğu için yavaştır. Ve aslında, başlangıçta birçok betik dilinin yanı sıra çok zayıf ve profesyonel olmayan bir uygulamaya sahipti.
SK-logic

Facebook tarafından başlatılan HipHop derleyicisi PHP'yi C ++ koduna çevirebilir, bu yüzden gerçekten hızlıdır.
JBRWilkinson

3

Hız, çalışma zamanı, ilk geliştirme zamanı ve bakım süresi (sorunları / hataları tersine çevirmek ve yeni kod üretmek ve dağıtmak için geçen süre) olarak ölçülebilir.

Komut dosyası dilleri genellikle daha yavaş çalışma süresine ancak daha hızlı bakım süresine sahiptir, çünkü tüm sistemi yeniden oluşturmak zorunda kalmadan ve bazen durup yeniden başlatmak zorunda kalmadan hızlı bir değişiklik yapabilir ve dağıtabilirsiniz.

Bu nedenle çok şey, ihtiyacınız olan hıza bağlı olarak bir dengedir.

Bağlam da önemlidir. Başlangıç ​​yapılandırmanızı 0,1 saniye yerine 0,5 saniye sürmek önemli değildir, ancak çalışma zamanında, 100 sorguyu işlemesi gerekiyorsa 0,1 saniye yerine bir sorgu gerçekleştirmek için 0,5 saniye almak büyük bir sorun olabilir. 10.


100 ms kullanıcı algısında etkili bir şekilde anlıktır. 500 ms oldukça dikkat çekicidir. Kullanıcı sorgular gerçekleştiriyorsa, bu iş akışında gözle görülür bir farktır.
David Thornley

3

Basit - müşteriler hızlı yazılımı sever. Aslında bilgisayarların tüm amacı hızlı bir şekilde hesaplamaktır.


11
aslında yanlış. Müşteriler, gereksinimlere ve bütçe dahiline uygun yazılımları sever. Bir ekran 15 yerine 19 milisaniye sürerse daha az umursamazlardı, çünkü asla fark etmezler (inşa etmek 15 saniye alırsa, bu başka bir şeydir). Ayrıca, "hızlı bir dil" kullanıp kullanmadığınız umurumda değil, yalnızca spesifikasyonlara uygun ve bütçe dahilinde bir şeyler istiyorlar.
13'te jwenting

4
19 ms ve 15 ms fark yaratmayabilir, ancak 500 ms vs 300 ms kesin olarak yapar ve başarılı bir ürün ile arıza arasında fark yaratabilir.
Nemanja Trifunovic

2
+1 "Müşteriler, gereksinimlere ve bütçe dahiline uygun yazılımları sever." Öte yandan, büyük bir şirketin çalışanları gibi, yazılım için doğrudan ödeme yapmayan bazı son kullanıcılar, geliştirme maliyetlerini gerçekten umursamıyorlar. Tabii ki bir yazılım satıcısı olarak en önemli göreviniz, size gerçekten ödeme yapan insanları mutlu etmektir.
Zsolt Török

@Zsolt: Bu gerçekten geliştirdiğiniz yazılım türüne bağlıdır. Genellikle son kullanıcıların ürünleri doğrudan ödediği veya satın alma kararlarını etkilediği ürünler üzerinde çalışıyorum - bize şartname vermiyorlar ve bütçemizi umursamıyorlar. Belki de "müşteriler" yerine "kullanıcılar" terimini kullanmalıydım.
Nemanja Trifunovic

4
Bir kullanıcı (bir geliştirici olarak değil) olarak konuşursak, genel yanıt verebilirlik (not: hızdan farklı), bir programı diğerine göre seçme kararımda önemli bir faktör olduğunu söyleyebilirim. Örneğin birkaç Java uygulaması kullanmamın bir nedeni budur; yalnızca JVM'deki başlangıç ​​zamanı, bu alanda -5000 nokta ile başlayan uygulamalarla sonuçlanır;). Ciddi olarak, yanıt verme yeteneği (genellikle) ürün kullanıcı arayüzünüzün tıknaz veya etkili olması arasında bir fark yaratabilir ve bazen kullandığınız dil, kekemeleri veya uzun disk g / Ç'yi beklerse bunu başarmak zor olabilir.
Billy ONeal

3

Yavaş görecelidir. Bir bağlantı noktasını saniyede 10 kez okuma gereksinimim varsa, bunu yapabilecek bir ikili dosya oluşturamayan bir dil çok yavaştır. Otoh sunucu ve tarayıcı / istemci arasındaki istek / yanıt dizisinin saniye cinsinden ölçüldüğü ve kullanıcının bir düğmeyi tıklamadan önce ekranda dakikalar geçireceği bir web uygulaması yazıyorsam, istek işleme işleyebilen bir programlama dili 1 saniyede muhtemelen yeterince hızlı (çoğu zaman çok daha hızlı).

Elbette programlama dili, yürütme hızını belirlemede bir faktör olabilir, ancak bu dilin kendisi değil, beraberinde gelen derleyiciler ve / veya çalışma zamanları olacaktır. Bu, JVM'lerin performansının (aynı donanım ortamlarında bile) yıllar boyunca radikal bir şekilde arttığı Java'nın gelişimini açıkça görüyor. Ve elbette, hangi ortamda seçerseniz seçin, yavaş yavaş kod yazmak her zaman mümkündür. "C ++, Java'dan on kat daha hızlıdır" gibi iddialar, tam olarak hangi koşulların test edildiğine ve nasıl test edildiğine göre kalifiye ve nicelleştirilmedikçe otomatik olarak sahte olur. Java'nın C ++ 'dan daha hızlı olduğu bir test oluşturmak da aynı şekilde mümkündür, hepsi test kodu olarak ne kullandığınıza ve nasıl yürüttüğünüze bağlıdır.


3

Programlama dilleri programcılara hizmet etmek için mevcut olmadığından, kullanıcılara hizmet vermek için programlar oluşturmak üzere vardır .

Bir şeyi bir kez yapmak için basit bir kişisel araca ihtiyacınız varsa, istediğiniz kadar yavaş olabilir. Ancak kullanıcılara konuşlandırmaya başladığınızda, özellikle tekrar tekrar kullanacaklarsa hız ve ölçeklendirmeyi önemsiyorlar. (Örneğin, bir yükleyici yavaş olabilir; yüklediği program daha iyi olmasaydı.) Ve bu sadece dil değil; genel olarak program. Programınız yavaşsa kullanıcılar bundan hoşlanmaz. Rekabetiniz varsa, programınızı beğenmeyen kullanıcılar çok kötü bir şeydir. Dolayısıyla, kullanıcıların programınızı beğenmemesine katkıda bulunan bir dil (yavaşlatarak) kötüdür.

Yayın medyası için kontrol yazılımı yazan bir ekibin parçasıyım. ABD'deyseniz, en sevdiğiniz TV veya radyo kanalının yayınlanma şansı yüksektir. Performans, müşterilerden en sık duyduğumuz şeylerden biridir. Başlangıçta küçük tek istasyon işlemleri için yazılmıştır, ancak şimdi yüzlerce kanalla büyük yayın ve kablo ağlarını imzalıyoruz ve ölçek bir sorun olmaya başlıyor. İşleri onlar için hızlı bir şekilde yapamazsak, milyonlarca dolarlık sözleşmelerini yapabilecek insanlara götürürler ve sonunda işimiz biter. Bu yüzden hızlı, derlenmiş bir dil kullanıyoruz ve halkanızı veritabanlarımızdan optimize ediyoruz.


3

Çünkü daha hızlı daha iyidir. Vakit nakittir. Sunucu yazılımı yazarsanız ve daha yavaş bir programlama dili kullanırsanız, daha fazla sunucu satın alırsınız. Büzülmüş bir yazılım yazarsanız, müşterileri daha hızlı rakiplere kaybedersiniz.

İnsanlar tarafından kullanılan her türlü kalıcı yazılım için genellikle mümkün olduğunca hızlı olmasını isteriz. Meclis düzeyinde, pazara sunma süresi karlı olmadığı için çok artar. Hepsi değiş tokuş. Bir iş açısından bakıldığında, zayıf programcıların C ++ 'daki bellek hatalarını ayıklamasına izin vermek , ürün rakiplerinizden daha hızlı olduğu anlamına gelirse , birkaç ay daha yapmak daha karlı olabilir .

Bu yüzden hız aslında birçok yazılımda önemlidir . Günümüzde yavaş diller "kötü" olarak kabul edilir, çünkü çok yavaştırlar (Python kolayca 50x - 100x daha yavaş olabilir ve bu çok fazladır)


2

Programcı dilleri programcılara hizmet etmek için mevcuttur.

Bu sonuca nasıl geldiğini bilmiyorum. Şunu söyleyebilirim: yazılım mühendisleri ihtiyaçları için programlama dillerini kullanırlar .

Bazı programlama dilleri diğerlerinden daha yavaştır, ancak bunun nedeni yanlış bir şey olmasıdır.

Bu aynı zamanda ince bir ifadedir. Burada 'daha yavaş' kelimesini kullanarak ne demek istediğinizi tanımlayın. Daha yavaş anlamına gelebilir:

  1. Aynı şeye ulaşan final programları, bir dilde diğerine göre 'daha yavaş' çalışır.
  2. Nihai programı oluşturmak için geçen süre daha uzun olabilir (bu nedenle, bazıları programı 'daha yavaş' olarak tanımlar).

Akla gelen bu iki konu, geliştirme ve performans için harcanan zaman arasında bir tür değiş tokuşun olduğu yerlerde iç içe geçmiştir.


3
"Yazılım mühendisleri ihtiyaçları için programlama dillerini kullanıyorlar" diyorsunuz. Bu yalnızca "programcılara hizmet veren programlama dilleri vardır" ifadesini destekler.
Emanuil Rusev

1
Şunu söyleyebilirim: yazılım mühendisleri problemleri çözmek için programlama dillerini kullanırlar (bunlar genellikle kendileri değil, müşterileri).
Péter Török

@Emanuil: "Bir çekiç bir tamirciye / insana hizmet eder" demezdim, ama bir görevi tamamlamak için bir çekiç kullanılır (örneğin bir çiviyi çekiçleyin, sevmediğiniz birine vurun, vb.). @ Péter: Kaç kişinin '@Peter' yazdığını merak ediyorum. Ancak her şey için 'problem' terimini yazabiliyorsanız, ifadelerimizin etkili bir şekilde eş anlamlı olduğunu düşünüyorum.
JK

1

Herhangi bir yazılım gibi, yavaş olmak altta yatan sorunların / kötü tasarımın işareti olabilir. Tasarım kuşkusuz biraz zeitgeist, ama bu şu anda dayandığı tasarım ilkelerinin güncel olmadığı ve 'kötü' olduğu düşünülmüyor.

Örneğin, klasik ASP ve ASP.net'i ele alalım.


1

Birisi "Müşteriler, gereksinimlere ve bütçe dahilinde performans gösteren yazılımlara bayılıyor" yorumunu yaptı. Evet, bu doğrudur - ancak yavaş yazılım üzerinde oldukça etkilidir ve neredeyse tanım gereği daha yavaş programlama dilleri (ve çerçeveleri) ve algoritmaları ve yapılandırması anlamına gelir. Yavaş bir programlama dili muhtemelen yukarıdakilerin en önemli kısmıdır, çünkü onun değiştirilmesini en zor bulacağınız bir temeldir. Bir Oracle DB kullanıyorsanız ve daha fazla performansa ihtiyacınız varsa, tabloları / index / etc'yi optimize edebilirsiniz. Kolay. Kodunuzda zayıf bir algoritma varsa, farklı kod yazabilirsiniz. Çerçeveniz yavaşsa, değiştirebilirsiniz - bu o kadar kolay değildir, ancak her şeyi yeniden yazmadan yapılabilir. Diliniz çok yavaşsa, pratik olarak tekrar başlamanız gerekir.

PHP'nin ölçeklendirilmesi gerektiğinde yeterince hızlı çalışması için uğraştıkları güçlük için Facebook'a bakın.

Geri kalanımız için 'işlevsel olmayan performans gereksinimleri' genellikle özellikle ölçeklenebilir web uygulamaları için spesifikasyonlara yazılmıştır. 'Sayfa yerine getirilemediğinde kullanıcıya istekten sonra 2 saniye içinde gösterilmelidir "ve sözleşmeyi kaybedersiniz (veya cezaları ödersiniz). (kullanıcıların kum saatine bakarken ne kadar zaman harcadıklarını umursamayabilirsiniz, ancak müşteri kesinlikle yapar - bu büyük bir maliyettir).

Örneğin, büyük bir çağrı merkezinde, her saniye için çağrı alma sürecinden tasarruf edebileceğinizi belirledikleri söylendi, 1 çağrı görevlisi 'küçültülebilir'. Bu aniden gerçek paradır ve patronların daha hızlı, verimli ve daha kullanışlı bir yazılım almaları için büyük bir teşviktir.

Programcıların kodu olabildiğince hızlı bir şekilde çalkalamalarından (ve her zaman birim test ve yeniden düzenleme, lol) endişelenmek için çok zaman harcanıyor. Bunun insanların düşündüğü kadar bir faktör olmadığını gördüm - eğer dilinizde bir uzmansanız, deneyimsiz olmanızdan çok daha hızlı kodlayabilirsiniz. Böylece uzman bir C ++ geliştirici, acemi bir PHP geliştiricisinden daha hızlı ve daha doğru bir şekilde kod yazabilir. Bu yüzden uzman olmanın 'kolay' bir dil seçmekten daha önemli olduğunu düşünüyorum ve bu yüzden bugün her yerde görünen 'havalı, yeni şeylerde yeniden yaz' kültünden hoşlanmıyorum.


1

Performans sorunlarının çoğunun mevcut olduğuna dikkat çekeceğim çünkü programcı dil çok yavaş olduğu için kötü bir iş çıkardı. Gerçekten, performans konusunda endişelenmeniz gereken dilden çok daha önemli şeyler var. Bu, listemde yaklaşık 1.203.407.


0

Peki, programlama dillerinin daha yavaş performansı, gerçekten kötü bir şey midir?

Diğer her şey eşit olmak, daha hızlı gitmek iyi bir şeydir. Sonuçta, hiç kimse bazı sonuçlar için daha uzun süre beklemek istemiyor ve bu sonuç yapıldıktan sonra başka şeyler için kaynakları serbest bırakabiliyor.

Ancak diğer her şey eşit değildir. Yeni başlayanlar için doğru sonucu veya en azından yeterince doğru sonucu üretmek de önemlidir . (Tamamen yanlış sonuçlara izin verilirse, bunları çok hızlı bir şekilde üretebilirsiniz ve bunlar herkes için tam olarak sıfır değere sahip olacaktır.) Biraz daha yavaş bir dilde yapılan değişiklik, doğru sonucun üretilmesini daha olası hale getirirse, bu genellikle büyük takas. Daha yüksek düzeyli diller, daha düşük düzeyli dillere göre bir avantaja sahiptir, çünkü daha zengin model kümeleri, çoğunlukla çok açık bir ayrıntı olmadan karmaşık bir sorunu ifade etmeyi kolaylaştırır.

Yazılımın ilk etapta üretilmesi, istenildiği gibi yeni özellikler eklenmesi ve temel sistemler değiştikçe çalışmaya devam etmesinin maliyetini yönetmek de genellikle önemlidir. Daha yüksek seviyeli diller genellikle daha hızlı programlama dönüşümü sağlar ve programlama maliyetlerini bütçe dahilinde tutmanın çok değeri vardır. Aslında, maliyetleri orada tutmak genel olarak daha farklı şeylerin elde edilmesini sağlar, bu genellikle iyi bir şeydir.

Unutulmaması gereken son nokta, sadece bir dil kullanılmasının gerekli olmadığı ve birçok yazılım sisteminin bileşenlerinin çoğunun performans açısından kritik olmadığıdır. Kritik bitler için yüksek performanslı bileşenler üretmek için düşük seviyeli bir dil kullanmak mantıklıdır, daha az kritik parçaları yüksek seviyeli bir dile bırakmak (bunları üretme maliyetini en aza indirecek şekilde) son derece mantıklıdır. Dahası, iyi bir düşük seviyeli dil yapan özellikler (makinenin ne yaptığını tam olarak kontrol etme yeteneği), iyi bir yüksek seviyeli dil yapan özellikler değildir (ayrıntıları çok daha küçük açıklamalardan çıkarma yeteneği): taban tabana zıttırlar, bu yüzden onları bir araya getirip güçlü yönleri için kullanabilmek ve zayıflıklarından kaçınabilmek, gerçekten harika bir şey.

Yüksek performanslı tedaviyi hangi bileşenler kullanmalıdır? Optimizasyon? Onları ölçün . Profil verin. Tahmin etmek yerine gerçeği bulun. Çabalarınızı en iyi olduğu yere odaklayın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.