質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
.NET Core

.NET Coreは、マネージソフトウェアフレームワークでオープンソースで実装されています。クロスプラットフォームを前提に考えられており、Windows/Mac/Linuxで動くアプリケーションを作成することが可能です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

1回答

637閲覧

.NETCore3.0 CPU使用率が異常

退会済みユーザー

退会済みユーザー

総合スコア0

.NET Core

.NET Coreは、マネージソフトウェアフレームワークでオープンソースで実装されています。クロスプラットフォームを前提に考えられており、Windows/Mac/Linuxで動くアプリケーションを作成することが可能です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2020/04/04 05:30

.NETCoreの異常なCPU使用率について
Sleepメソッドを使用しループを一時停止しているのですがCPU使用率が2.7%もあり、困っています。
.NETCoreのバグでしょうか?回答よろしくお願いいたします。

動作端末:Raspberry Pi 3 Model B+
Runtime: .NET Core3.0
CPU使用率

C#

1static async Task Main(string[] args) 2 { 3 Discord discord = new Discord("URL"); 4 Crawler Crawler = new Crawler(); 5 6 try 7 { 8 while (true) 9 { 10 if ((DateTime.Now.Hour < 20 && DateTime.Now.Hour > 7)) 11 { 12 List<NewsResult> newsResults = await Crawler.GetNewsElement(); 13 newsResults.Reverse();//配列の順番入れ替え(古い順に) 14 15 foreach (var item in newsResults) 16 { 17 string logPath = $@"{Directory.GetCurrentDirectory()}/url.log"; 18 string logjson = await File.ReadAllTextAsync(logPath); 19 20 if (logjson != string.Empty) 21 { 22 URLJsonObject uRLJsonObject = JsonConvert.DeserializeObject<URLJsonObject>(logjson); 23 if ((uRLJsonObject != null) && !uRLJsonObject.URL.Contains(item.URL)) 24 { 25 uRLJsonObject.URL.Add(item.URL); 26 File.WriteAllText(logPath, JsonConvert.SerializeObject(uRLJsonObject)); 27 28 await discord.PostElement(item); 29 System.Threading.Thread.Sleep(3000); 30 31 if (uRLJsonObject.URL.Count > 50) 32 { 33 //ログファイルが大きくなりすぎないように調整 34 uRLJsonObject.URL.RemoveRange(0, 30); 35 File.WriteAllText(logPath, JsonConvert.SerializeObject(uRLJsonObject)); 36 } 37 } 38 } 39 else 40 { 41 URLJsonObject uRLJsonObject = new URLJsonObject(); 42 uRLJsonObject.URL.Add(item.URL); 43 File.WriteAllText(logPath, JsonConvert.SerializeObject(uRLJsonObject)); 44 45 await discord.PostElement(item); 46 System.Threading.Thread.Sleep(5000); 47 } 48 } 49 } 50 //問題のThread.Sleep 51 System.Threading.Thread.Sleep(900000); 52 } 53 } 54 catch (Exception ex) 55 { 56 await discord.PostErrorMessage(ex); 57 Environment.Exit(100); 58 } 59 }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hihijiji

2020/04/04 05:56

OS、実行環境(Windows IoT とか Monoとかそのバージョンとか)や計測方法(top とか ps とか)など 様々な要因で変わります。 そもそも数%なんて誤差範囲です。
退会済みユーザー

退会済みユーザー

2020/04/04 06:10

回答ありがとうございます。 UnixデーモンのCPU使用率が低くて羨ましかったので、神経質になっていたようです、誤差と割り切ることにしました。
hihijiji

2020/04/04 06:40

タイマー系は自分で時間をカウントする必要があるので0にはなりませんよ。
guest

回答1

0

ベストアンサー

誤差の範囲内と割り切ることにしました、回答ありがとうございました。

投稿2020/04/05 01:17

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問