1. 程式人生 > 實用技巧 >20200917-3白名單

20200917-3白名單

此作業要求參見[https://edu.cnblogs.com/campus/nenu/2020Fall/homework/11207]

作業0

修改create.cpp檔案,改成由命令列引數確定生成的資料的資料量。修改readme.md的對應部分。(要求貼出修改之後的程式碼和read.md。)

修改後程式碼:

#include <iostream>
#include <stdlib.h>
#include <time.h>

using namespace std;

int main(int argc, char* argv[])
{
    int num = atoi(argv[1
]); srand((unsigned)time(NULL)); for (int i = 0; i < num; i++) { cout << rand()<< "\n"; } cout << endl; return 0; }

readme.md:

readme.md

專案名稱:creat.cpp

執行環境:Visual Studio 2019

使用說明:

1.安裝vs;

2.編譯create.cpp檔案;

3.執行"create10>whitelist"命令生成檔案whitelist;

4.執行"create1000>q"命令生成檔案q;

5.編譯brute.cpp檔案;

6.執行“brute -wq < whitelist > output”

作業1

對上面兩段老楊寫的程式碼任選其一進行profile,觀察現象(要求有截圖記錄)。

選擇c#程式程式碼進行profile,使用vs2019中的效能探查器進行cpu使用率檢測,結果如圖

綜上:幾個佔用的差不多,點開紅色程式碼發現是main佔用的記憶體最多。

作業2(10分)

以biggerwhitelist和biggerq作為輸入,對作業1中選擇的程式碼再次進行profile,找到程式碼執行最“慢”的地方,截圖為證並文字說明。

生成biggerwhitelist和biggerq檔案

使用新生成的bigger資料進行profile,結果如下

由此可看出is_match佔用的記憶體最多

作業3(10分)

根據作業2找到的最慢的地方,優化作業1中你選擇的程式碼,在保證輸出結果正確的前提下,減少老楊程式執行的時間。(優化後的程式碼需要你提交到git上,作為教師的判斷依據。優化後的程式的名字應該是better.cpp或者better.cs。)

修改程式碼如下:

作業4(5分)

對作業3優化後的程式碼進行profile,結果與作業2的結果做對比。畫表格並文字說明。

做業5(5分)

你覺得老楊的文件(readme),註釋和程式碼風格又哪些問題,該如何改進?

文件比較簡單清晰,註釋如果更詳細就好了。

面試結束了,你和老楊握手,對他說出了面試的結果。你說的內容,不是今天的作業題,也許是若干年以後你想對當年教你的教師說的,也許是你希望未來的面試官對你說的。你想說的是什麼呢?

該學習的時候就學習,作業不要拖!