AMcoder - javascript, python, java, html, php, sql

Rspec (jruby) հիշողության բացառություն

Ես անպայման չէ, որ փնտրում եմ դրա պատասխանը, ես փնտրում եմ առաջարկություններ ախտորոշիչ գործիքների վերաբերյալ, որոնք կօգնեն ինձ գտնել խնդրի արմատը

Մենք ունենք շատ մեծ փորձնական փաթեթ rspec-ում, որն ամբողջությամբ գործարկվելիս սպառվում է հիշողությունից:

Երբ մենք ստանում ենք հաղորդագրություն, այն ասում է, «Javalang::OutofMemoryError \n permgen space»

Սա տեղի չի ունենում հատուկ թեստերի համար, բայց թվում է, թե դա տեղի է ունենում մոտավորապես միևնույն ժամանակ փորձարկման փաթեթի ընթացքում (ըստ երևույթին, հիշողության օգտագործումը կուտակվում է առանց ազատվելու և ի վերջո հանգեցնում է ձախողման)

Մենք օգտագործում ենք jruby-ն Oracle-ի հետ ojdbc-ի միջոցով:

Արդյո՞ք որևէ մեկը որևէ առաջարկ ունի, թե ինչ անել այս խնդրի աղբյուրը գտնելու համար: jmap-ն ակնհայտորեն ոչ այնքան օգտակար է եղել (չնայած մենք չենք հասել ojdbc-ի վրիպազերծման կետին)

24.10.2013

Պատասխանները:


1

Շնորհակալություն Ջոշ Սիլվերմանին և Սթիվեն Կարգերին այս պատասխանի համար.

PermGen max-ի բարձրացումը լուծում է խնդիրը: Թվում է, որ PermGen max-ի կրկնապատկումը մինչև 128 մեգաբայթ կարող է աջակցել 10 անգամ ավելի մեծ թեստային փաթեթ: Իմ փորձարկումից թվում է, թե java-ի պրոցեսի կողմից հիշողության օգտագործումը սկսում է հավասարվել մոտ 690 մբ (500 կույտ + 128 պերիգեյան + 50 մբ անհայտ) այդ նոր PermGen առավելագույնի հետ: Դուք կարող եք մեծացնել ձեր PermGen հիշողության հատկացումը՝ փոփոխելով ձեր JRUBY_OPTS-ը, ինչպես ցույց է տրված վերևում:

# in your .bashrc or .bash-profile, or other environment control:
export JRUBY_OPTS="--1.9 -J-XX:MaxPermSize=128m"
30.10.2013
  • սա գործարկման ժամանակի կարգավորում է, թե՞ այն պետք է կազմվի: 13.01.2017
  • Բացի այդ, ես չեմ կարծում, որ այս տարբերակը տեղին է JVM › v8-ի համար, ես ստանում եմ այս նախազգուշացումը Travis CI-ում. "Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0" 13.01.2017
  • Նոր նյութեր

    Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
    JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

    Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
    Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

    Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
    Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

    Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
    Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

    C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
    C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

    Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
    Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..