9 addımda Java tətbiqetmələrinin performansını necə artırmaq olar

Rəqəmsal dövrdə yaşamaq məyusluq olduğu qədər xeyirdir. Kompüterlər və tətbiqlər rəvan işlədikdə, onları lazımi qaydada qəbul etməyə meyl edirik. Ancaq bir kompüter dondurulduqda və ya bir tətbiq bir dizüstü və ya mobil cihazı batırdıqda, zəif performans stressi artırır.


Mənbə koduna giriş əldə edən bir inkişaf etdirici və ya sadəcə qıcıqlandıran yavaş bir Java tətbiqetməsini sürətləndirməyə çalışan bir istifadəçi olmağınızdan asılı olmayaraq yaxşı bir xəbərimiz var: performansınızı yaxşılaşdırmaq üçün atacağınız addımlar var.

Java JavaScript ilə eynidir?

Bir sözlə, yox; Java və JavaScript iki tamamilə fərqli texnologiyalardır. Hər ikisi obyekt yönümlü texnologiyalar olsa da, Java bir sistemin yaddaşında yerli olaraq işləmək üçün hazırlanmış tətbiqetmələri kodlaya biləcəyi inkişaf mühitidir..

Digər tərəfdən, JavaScript veb tətbiqləri yaratmaq üçün hazırlanmış və tez-tez HTML və CSS kimi digər veb texnologiyalarla üst-üstə düşür. Bu gün biz Java-da yazılan tətbiqlərin işini yaxşılaşdırmağın ən yaxşı yollarını nəzərdən keçirəcəyik, lakin JavaScript-ni yox.

Tətbiqin zəif olmasının səbəbləri

Düzgün olmayan bir tətbiqin səbəbləri genişdir, əsas səbəblər kiçik bir ovuc problem olsa da. Təbii ki, ilk iki səbəb pis dizayn və alt parol kodlaşdırmadır.

IDE və kod redaktorları insanları daha oxunaqlı etmək üçün test və obyektləri vurğulasa da, kompüterlə insanlar arasında rabitə boşluğu var. Tətbiq qurarkən səhv edəcəksiniz – bunun ətrafında heç bir yol yoxdur.

Kompüter bəzən niyyətinizi başa düşmür. Əksinə, yalnız verilən təlimatları yerinə yetirir. Alqoritmik və kodlaşdırma nöqsanlarına əlavə olaraq, çatışmazlıqlar başqa bir ümumi səbəbdir.

RAM və CPU dövrləri kimi yerli aparat, şəbəkə bant genişliyi kimi digər mənbələr kimi tətbiq performansına təsir göstərir. Bundan əlavə, yerli əməliyyat sistemindəki problemlərin tez-tez tətbiq performansına təsir etdiyini unutmayın.

Java tətbiqi performansını necə artırmaq olar – 9 addım

Hər bir konkret addımın daha da dərindən getməsindən əvvəl, Java proqramlarının işini necə yaxşılaşdıracağınıza dair yüksək səviyyədə məlumat vermək istədik:

  1. Profil və yük testini aparın – Java tətbiqetmənizi profilləşdirmək ağrı nöqtələri və problemlərin açılmasına kömək edəcəkdir.
  2. Kod təmizləyin və alqoritmlərə yenidən baxın – təmiz kodu saxlamaq, redaktə etmək, oxumaq və saflaşdırmaq daha asandır; alqoritmlərinizi yenidən nəzərdən keçirtmək tautoloji funksiya çağırışlarını azaldır.
  3. Mümkün olduqda təkrarlanmadan çəkinin – təkrarlanma bəzi hallarda zəruri bir pislikdir, baxmayaraq ki, az xərclənməlidir.
  4. Sistem avadanlığını təkmilləşdirin – Tətbiqin zəif aparılması zəif kod və alqoritmlərə köklənə bilməz; bunun əvəzinə, əsas səbəb tətbiqi işlədən sistemlə əlaqəli ola bilər.
  5. LAN və WAN bant genişliyini artırın – Bütün funksiyalar yerli aparatla qarşılıqlı əlaqədə deyil; tətbiqiniz uzaq sistemlərlə danışırsa, şəbəkə infrastrukturunuz günahkar ola bilər.
  6. Əməliyyat sisteminizi təmizləyin – Çirkli əməliyyat sistemlərinin tətbiqi ən yaxşı şəkildə işə salması üçün texniki xidmətə ehtiyacı var.
  7. Effektivliyi artırmaq üçün StringBuilder-i işə salın – Əksər tətbiqlərdə sətirlər demək olar ki, qaçılmazdır, lakin “+ =” əməliyyatı olduqca səmərəsizdir.
  8. Təkmilləşdirilmiş performans üçün keshləmə – önbelleğe lazımsız obyekt hazırlama və funksiya çağırışlarını azaltmağın ən yaxşı yollarından biridir.
  9. Yığın üzərində yığını bəyənin – yığma sistem ehtiyatlarına nisbətən daha səmərəlidir, çünki özünü saxlayır və nöqsanlı obyektlərin tutduğu yaddaşı azad edir..

Bununla, Java tətbiqetməsinin işini yaxşılaşdırmaq üçün hər metodu bir az daha dərindən araşdıraq.

1. Profil və yük testini həyata keçirin

Java tətbiqetmələrinin performansını artırmaq üçün ilk addım yaxşılaşdırılması üçün sahələri müəyyənləşdirməkdir. Ən böyük problemlərin harada olduğunu bilmədən, bir tətbiqi sürətləndirməyə çalışmaq, gözlərini bağlanarkən bir dart taxtasına atmaq kimidir. Xoşbəxtlikdən, tətbiqi performansına dair məlumat toplayan proqram vasitələri var.

Istifadə etməyi tövsiyə edəcəyimiz ilk vasitə Java profilli proqramdır. Belə misallardan biridir SizinKit, bu həm müəssisələr, həm də fərdi istifadəçilər üçün uyğun olan bir həlldir. SizinKit müəssisə, akademik, açıq mənbə və oturacaq yerləri kimi müxtəlif lisenziyaları təklif edir.

Onun xüsusiyyətləri aşağıdakıları əhatə edir, lakin bununla məhdudlaşmır.

  • CPU performans profilləşdirilməsi
  • Yaddaş performansının profilləşdirilməsi
  • Yaddaş sızmasının aşkarlanması
  • Mövzular və sinxronizasiya təhlili
  • Veb, verilənlər bazası və I / O performans testi

Bu vasitə yerli sistemlərdə, uzaq sistemlərdə, hazırda inkişaf etdirilən layihələrdə və hətta istehsal proqramlarında istifadə üçün hazırlanmışdır. SizinKit yeganə keyfiyyətli Java-profiler deyil, lakin digər həllərdən güclü rəqabətə malikdir EJ-Texnologiyaları, yaratdı JProfiler.

Bu vasitə çox oxşardır SizinKit və yerli və uzaq sessiyalar, test tətilləri, anlıq görüntüləmə müqayisələri, sorğu izləmə (HTTP, RMI, veb xidməti, EJB, AWT hadisələri, ip başlamaları və s.) və bir çox digər xüsusiyyətlər arasında xüsusi sınaq yaradılması üçün sınaq seçimlərini təmin edir. Nəhayət, JProfiler ayrıca aparat, ip, telemetriya və verilənlər bazası profilli vasitələrə malikdir.

2. Kod təmizləyin və alqoritmlərə yenidən baxın

Proqram mənbə kodu bir romanın ilk layihəsi kimidir – ilk iterasiyadan sonra heç vaxt mükəmməl deyildir və nəhayət cilalanmadan əvvəl ciddi düzəlişlər tələb olunur. Hər şeydən əvvəl, şərhlər ilə doymuş təmiz kodu yazmağa çalışmalısınız ki, mətninizdə gedin və hər bir obyektin niyə qurulduğunu və hər bir funksiyanın niyə adlandığını asanlıqla xatırlayasınız..

Kodunuzu təmiz saxlamaq Java tətbiqetməsini sürətləndirməsə də, lazımsız kodu daha səmərəli tərtib etməyə və alqoritmlərinizdə zəiflik və boşluq axtarmağa kömək edir. Təmiz kod, ayıklama prosesini daha hamar edir və proqramınızı profillə və yükləmədən sonra aşkarladığınız səhvləri (yaddaş sızması kimi) düzəltməyə kömək edir.

3. Mümkün olduqda təkrarlanmadan çəkinin

Rekursiya bir problemi həll etmək üçün bir funksiyanın özünü çağırdığı əsas proqramlaşdırma strategiyasıdır. Rekursiya mütləq pis deyil, lakin bu, iki tərəfli qılıncdır. Faydaları və praktik istifadəsi var. Məsələn, təkrarlanma kodu daha təmiz və yığcam edir və döngələrin və funksiyaların taktoloji iterasiyasını azaldır.

Təkrarlama kodun mürəkkəbliyini və həcmini azaltdığına görə Java tətbiqetməsini asanlaşdırmağa kömək edir. Təəssüf ki, bu üstünlüklər tətbiq performansının qiymətinə gəlir. Rekursiya və funksiya zəngləri sürət və performans baxımından baha başa gəlir, çünki yığındakı pop və təkan funksiyaları tələb olunur.

Digər tərəfdən təkrarlanmanın daha səmərəli həlli döngədir. Döngü əməliyyatları oxumaq daha çətin ola bilər və təkrarlanmadan daha çox simvol və mənbə kodundan ibarətdir, lakin tətbiq performansının maksimuma çatdırılması lazım olduqda üstünlük verilir. Tamamilə imtina etmək həmişə praktik olmaya bilər, amma mümkün qədər azaltmaq Java tətbiqlərinin işini yaxşılaşdırmağa kömək edəcəkdir.

4. Sistem aparatını yeniləyin

Səthdə, səhv bir Java proqramının bir proqram problemi səbəb olduğu görünə bilər. Bu əks-intuitiv görünsə də, zəif performansın kök səbəbi bir hardware problemi ola bilər. Yerli və ya uzaqdan bir Java tətbiqetməsini işlətməyinizdən asılı olmayaraq, Java tətbiqetməsinin işlədiyi sistemdə kodu qənaətbəxş şəkildə yerinə yetirmək üçün kifayət qədər sistem mənbəyi olmaya bilər.

Adətən proqram təminatına birbaşa təsir edən yeniləmə üçün ən asan komponent RAMdır. Kompüterinizdəki yaddaşın həcmini genişləndirməklə sistemin tətbiqi məlumatları üçün boş yer tükənmək şansını azaldır və sabit diskdən istifadəsiz RAM olaraq istifadə etmək məcburiyyətində qalırsınız. Bu təcrübə bir səhifə faylı olaraq bilinir və praktik istifadəsi olsa da, səhifə sənədləri RAM-dan daha yüksək məhsuldar tətbiqlər üçün daha arzuolunmazdır, çünki oxumaq və yazma prosesi sabit diskdə xeyli yavaş olur..

Bundan əlavə, Java tətbiqetməniz sabit disklə (məsələn, məlumat ehtiyatı və ya sinxronizasiya tətbiqi kimi) qarşılıqlı əlaqə qurarsa, sabit diskin təkmilləşdirilməsi sistemin işini yaxşılaşdıra bilər. Məsələn, daha sürətli oxumaq və yazma prosedurları üçün daha yüksək RPM-lər olan bir sürücüyə yüksəldə bilərsiniz. Ancaq unutmayın ki, ən sürətli sərt disklər SSD-lər (Bərk Dövlət Sürücüləri) və hərəkət edən hissələr yoxdur. Nəhayət, bəzi sistemlər, lakin hamısı deyil, CPU-nu da genişləndirməyə qadirdir, baxmayaraq ki, RAM kimi təkmilləşdirmək asan deyil.

5. LAN və WAN bant genişliyini artırın

Yerli və server cihazları Java tətbiqetmələrinin, o cümlədən Java veb tətbiqlərinin də əsas komponenti olsa da, bu, yeganə potensial problem deyil. Yerli bir Java veb tətbiqetməsini bir LAN, bir intranetdə və ya uzaqdan qəbul etməyinizə baxmayaraq, bant genişliyi tətbiqlərinizin mövcudluğu və işləməsi baxımından mühüm rol oynayır – xüsusən pik yükləmə dövründə.

Ümumiyyətlə, LAN band genişliyi adətən bol və ucuzdur, halbuki WAN bant genişliyi bahalı və qısadır. Buna baxmayaraq, digər LAN trafikində Java veb tətbiqetmələri ilə işləyən serverin qoşulduğu yerli şəbəkə sıxılır. Bu problem iki yoldan biri ilə həll edilə bilər.

Birincisi, şəbəkə tıkanıklığını azaltmaq üçün açarları və yerli şəbəkə infrastrukturunu Gigabit Ethernet və ya 10Gigabit Ethernet həlli səviyyəsinə qaldırmağı seçə bilərsiniz. Alternativ olaraq, Java trafikinin digər növlərindən üstün olan Java tətbiqlərinə sahib olan serverə və ondan gələn trafikə üstünlük verən QoS (Xidmət keyfiyyəti) siyasətini həyata keçirə bilərsiniz..

Bundan əlavə, WAN genişliyini artırmaqla (fərqli bir İSP seçməyi tələb edə bilər) əlavə olaraq, lazımsız İSP əlaqələrini daha yaxşı istifadə etmək üçün yük balansını tətbiq edə bilərsiniz. Unutmayın ki, zəif işləyən Java tətbiqetmələri mütləq proqram problemləri səbəb ola bilməz və şəbəkə tıxanıqlığından təsirlənə bilər.

6. Əməliyyat sisteminizi təmizləyin

Əməliyyat sistemləri, pik performansda çalışmaq və sistem qaynaqlarından səmərəli istifadə etmək üçün ev işləri və texniki xidmət tələb edir. İşsiz bir əməliyyat sistemi yavaşlamağa və ləng hiss etməyə meyllidir. Məsələn, bilmədiyiniz arxa planda çox görünməyən proseslər ola bilər.

Bundan əlavə, bir çox proqramın quraşdırılması proseduru avtomatik olaraq başlanğıcda tətbiq olunan proqramların siyahısına yeni proqram əlavə edir. Yalnız bu tətbiqlər bir sistemin daha yavaş yüklənməsinə səbəb olmur, eyni zamanda başqa bir Java tətbiqetməsini işlətmək üçün istifadə edilə bilən RAM və CPU dövrləri kimi həyati əhəmiyyətli sistem qaynaqlarını bağlayır..

Lazımlı və arzuolunmaz proses və tətbiqləri budama əməliyyat sisteminizi təmizləməyinizə kömək edəcək, Windows sistemlərindəki qeyd reyestrini təmizləyən kimi. Bir qeyd təmizləyicisi, qeyd dəftərindəki səhv girişləri və bərpaedici indeks strukturlarını silməklə DLL səhvlərini və iş vaxtı səhvlərini yüngülləşdirə və aradan qaldıra bilər..

Bundan əlavə, başqa bir ev işi – az istifadə edilməli – sabit diskinizi təmizləməkdir. Vaxt keçdikcə, fayllar davamlı olaraq yazılır və sabit bir diskdən silinir, sürətlə yayılan, xaotik bir qarışıqlığa çevrilə bilər. Bir defrag alət bütün məlumatlarınızı yuvarlaqlaşdırır və bitişik bloklara yenidən yazır ki, bu da sabit diskin məlumat oxumağa vaxtını azaldır..

Ancaq əvvəlcədən xəbərdar olun: defragmentasiya prosesi çox tələbkardır və sərt diskdə vergi tətbiq olunur. Gündəlik, həftəlik və hətta aylıq defraqmentasiya etsəniz, sabit diskinizin ömrünü kəskin azalacaqsınız. Daha məqbul və praktik bir tezlik, ildə iki-üç dəfədir.

7. Effektivliyi artırmaq üçün StringBuilder-i işə salın

Strings tətbiqlərin böyük əksəriyyətində yayılmış bir məlumat növüdür – qarşısını almaq və ya görməməzlikdən gəlmək çətindir. Təəssüf ki, simli birləşmə tez-tez olduğu kimi təsirsizdir. Sətirləri əlaqələndirməyin ən yaxşı yolu “+ =” əməliyyatı kimi görünə bilər, amma bu, çox səmərəsiz bir çox istifadə.

Problem ondadır ki, “+ =” əməliyyatı hər dəfə istifadə edildikdə tamamilə yeni bir sətir ayırır ki, bu da çox sayda lazımsız və lazımsız simli məlumatlar yarada bilər. Bu əməliyyatı indi istifadə etsəniz və sonra Java tətbiqetməyinizin dayandırılmasına səbəb olmasa da, hər kiçik əməliyyat əlavə olunur. Təsəvvür edin ki, bu səmərəsizliyi bir döngədə neçə dəfə böyütmək olar?

Xoşbəxtlikdən, daha səmərəli alternativ var. The StringBuilder obyekt əsas bağlama əməliyyatlarına səmərəli alternativ olaraq hazırlanmışdır. Java tətbiqetmələrinin işini yaxşılaşdırmaq istəyirsinizsə, “+ =” əməliyyatının tənbəl yazılarını istifadə etmək əvəzinə bu məlumat növündən istifadə etmə vərdişinə qapılın..

8. Performansın yaxşılaşdırılması üçün istifadəni caching

Keshləmə Java tətbiqetmələrinin səmərəliliyini artırmağın ən təsirli yollarından biridir. Önbelleme əsas konsepsiyası, birdən çox zəng və funksiyanı bir istifadə edilə bilən bir qaynağa birləşdirməkdir. Keşləmə bir çox formada olsa da, burada insanların çoxu ‘caching’ kəlməsini xatırladan ilk şey verilənlər bazası texnologiyasıdır.

Bir verilənlər bazası içərisindəki məlumatların yalnız genişliyi qorumaq üçün yerli olaraq ələ keçirilə bilməz, eyni zamanda bir tətbiqi yavaşlayan verilənlər bazası bağlantılarının yüksək həcmi də ola bilər. Bununla birlikdə, yadda saxlamağın həddindən artıq olmamalı olduğunu unutmayın. Yaxın gələcəkdə yenidən istifadə etməyiniz üçün intuitiv olaraq hər şeyin yaddaşa verilməsini düşünə bilərsiniz. Bununla birlikdə, önbelleğinizdəki məlumatların və əlaqələrin performans qazancını görmək üçün kifayət qədər çox olmasını təmin etməlisiniz.

9. Yığın üzərində yığını sevin

Təkmilləşdirilmiş Java tətbiqi performansı üçün məlumatları yığın yerinə yığın üzərində saxlayın. Niyə soruşursan? Çünki yaddaşdan daha səmərəli istifadə edir və artıq məqsədinə çatan məlumatları silir. Yığıncaq təkcə ehtiyatlardan daha səmərəli istifadə etmir, həm də yerüstü yoxlamada saxlayır. Yığıncaq üzərində yığını üstün tutmağın ən yaxşı yolu, sarğı siniflərini həyəcanlandırmamaqdır.

Təkrar istifadənin istifadəsi kimi, sarğı sinifinin istifadəsindən imtina etmək həmişə mümkün deyil (və ya hətta mümkündür). Ancaq ümumi bir qayda olaraq, integer-dən fərqli olaraq “int” kimi ibtidai məlumatlar növlərindən istifadə etməyiniz lazımdır. Bu taktikadan istifadə edərək əldə edə biləcəyiniz qazancların sayı çoxsaylı amillərdən asılıdır. Buna baxmayaraq, yığını üstün tutmaq, ən təmiz və ən səmərəli Java koduna gedən yolu tapmaq üçün yaxşı bir bələdçidir.

Bazarda Java yamalarını uğurla yeniləməyə kömək edəcək vasitələr var. Belə bir vasitədir GünəşWinds Patch meneceri.

SolarWinds patch meneceri

Tam işləyən bir yükləyə bilərsiniz 30 günlük pulsuz sınaq

SolarWinds Patch ManagerDownload 30 günlük PULSUZ sınaq

Əlaqədar: Ən yaxşı yamaq idarəetmə vasitələri

Bundan əlavə, yoxlamalısınız Server ilə tətbiqi serverlər üçün SolarWinds Java Monitorinq vasitəsi & Tətbiq Monitoru performansını artırmaq. Tam işləyən bir yükləyə bilərsiniz 30 günlük pulsuz sınaq.

SAMDownload 30 günlük PULSUZ sınaq ilə tətbiq serverləri üçün SolarWinds Java Monitorinq vasitəsi

Final Düşüncələr

Yavaş, sürünən Java tətbiqi qanı qaynadarsa, dərin bir nəfəs alın və yumruqlarınızı klaviaturanıza vurmağı unutmayın – bu, yalnız işləri daha da pisləşdirəcəkdir. Bunun əvəzinə, dərin bir nəfəs alın və Java tətbiqi performansını sürətləndirmək üçün yuxarıda göstərilən üsullardan birini istifadə edin.

Java tətbiqetmələrini sürətləndirməklə bağlı şəxsi hekayələriniz və ya lətifələriniz varsa, sizi aşağıda şərh verməyə dəvət edirik.

Kim Martin Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map