2016-06-15 11 views
0

私のアプリケーションでCPU使用量が多く、待ち時間が長くなる理由を見つけようとしましたので、アプリケーションでいくつかのログを記録し始めました。私は自分のアプリケーション内のすべての部分を記録したとき、私はこれに走った:Meteor server method実行時間

var updateTime = process.hrtime(); 

Nightclubs.update({_id: nightclubId}, {$push: { guests: { 
    value: value, 
    currentGuestAmount: currentGuestAmount+value, 
    date: thisEntryDate.toDate(), 
    gender: gender, 
    age: age, 
    guard: guardId 
}}}) 

var updateDiff = process.hrtime(updateTime); 

後者の方法では、私はこのように、この時間をログに記録:

このにつながる
console.log('update benchmark took %d nanoseconds', updateTime[0] * 1e9 + updateTime[1]); 

update benchmark took 1084353904561267 nanoseconds 

ええ..それは1.8週間です....これは、合計方法が916589992ナノ秒、すなわち0.91秒(これはやや長すぎます)

これについて手掛かりがあるのは誰ですか?

PS、I挿入どのようなデータの詳細についてのビット:

guests: { type: Array, defaultValue: [] }, 
'guests.$': { type: Object }, 
'guests.$.value': { type: Number }, 
'guests.$.currentGuestAmount': { type: Number }, 
'guests.$.date': { type: Date }, 
'guests.$.age': { type: Number }, 
'guests.$.gender': { type: String }, 
'guests.$.guard': { type: String }, 
+2

console.timeconsole.timeEndを使用し、 'console.timeEnd' https://developer.mozilla.org/en-US/docs/Web/API/console#Timers – Ser

+0

@Serええ、それは少し良い答えを与えました:15ms!私はそれを続けると思います! –

答えて

1

締結することを、あなたは `console.time`を使用することをお勧めします代わりにprocess.hrtime()

console.time("Update nightclub"); 

Nightclubs.update({_id: nightclubId}, {$push: { guests: { 
    value: value, 
    currentGuestAmount: currentGuestAmount+value, 
    date: thisEntryDate.toDate(), 
    gender: gender, 
    age: age, 
    guard: guardId 
}}}) 

console.timeEnd("Update nightclub"); 
関連する問題