From 6868e33b971ad8a946dc34eeb0ee4ec124734aa0 Mon Sep 17 00:00:00 2001 From: jackfiled Date: Tue, 25 Mar 2025 14:56:16 +0800 Subject: [PATCH] feat: compress image to webp to reduce size. --- .gitattributes | 2 ++ YaeBlog/source/posts/2021-final.md | 9 ++--- YaeBlog/source/posts/2021-final/1.png | 3 -- YaeBlog/source/posts/2021-final/1.webp | 3 ++ YaeBlog/source/posts/2022-final.md | 11 ++++--- ...-12-30-14-26-19-QQ_Image_1672381538441.jpg | 3 -- ...12-30-14-26-19-QQ_Image_1672381538441.webp | 3 ++ ...-12-30-14-28-12-QQ_Image_1672381543836.jpg | 3 -- ...12-30-14-28-12-QQ_Image_1672381543836.webp | 3 ++ YaeBlog/source/posts/2022-summer-vacation.md | 8 ++--- .../posts/2022-summer-vacation/result1.png | 3 -- .../posts/2022-summer-vacation/result1.webp | 3 ++ YaeBlog/source/posts/2023-final.md | 9 ++--- .../2023-final/image-20240303165826486.png | 3 -- .../2023-final/image-20240303165826486.webp | 3 ++ YaeBlog/source/posts/2024-final.md | 3 +- .../2024-final/image-20250115171809775.png | 3 -- .../2024-final/image-20250115171809775.webp | 3 ++ YaeBlog/source/posts/big-homework.md | 8 ++--- YaeBlog/source/posts/big-homework/1.png | 3 -- YaeBlog/source/posts/big-homework/1.webp | 3 ++ YaeBlog/source/posts/build-blog-record.md | 10 +++--- YaeBlog/source/posts/build-blog-record/1.png | 3 -- YaeBlog/source/posts/build-blog-record/1.webp | 3 ++ YaeBlog/source/posts/build-blog-record/2.png | 3 -- YaeBlog/source/posts/build-blog-record/2.webp | 3 ++ .../source/posts/build-dotnet-from-source.md | 11 ++++--- .../image-20240824120646587.png | 3 -- .../image-20240824120646587.webp | 3 ++ .../image-20240824121425007.png | 3 -- .../image-20240824121425007.webp | 3 ++ .../image-20240824134158262.png | 3 -- .../image-20240824134158262.webp | 3 ++ .../image-20240824153514149.png | 3 -- .../image-20240824153514149.webp | 3 ++ .../image-20240824214145759.png | 3 -- .../image-20240824214145759.webp | 3 ++ YaeBlog/source/posts/c-include-problems.md | 12 +++---- YaeBlog/source/posts/c-include-problems/1.png | 3 -- .../source/posts/c-include-problems/1.webp | 3 ++ YaeBlog/source/posts/c-include-problems/2.png | 3 -- .../source/posts/c-include-problems/2.webp | 3 ++ YaeBlog/source/posts/cncc-2024.md | 9 ++--- .../cncc-2024/image-20241102211959206.png | 3 -- .../cncc-2024/image-20241102211959206.webp | 3 ++ .../cncc-2024/image-20241102212355390.png | 3 -- .../cncc-2024/image-20241102212355390.webp | 3 ++ .../cncc-2024/image-20241102212536635.png | 3 -- .../cncc-2024/image-20241102212536635.webp | 3 ++ .../cncc-2024/image-20241102212738598.png | 3 -- .../cncc-2024/image-20241102212738598.webp | 3 ++ YaeBlog/source/posts/compile-mediapipe.md | 11 ++++--- ...15-22-05-41-Screenshot_20230115_220521.png | 3 -- ...5-22-05-41-Screenshot_20230115_220521.webp | 3 ++ ...19-20-20-40-Screenshot_20230119_202008.png | 3 -- ...9-20-20-40-Screenshot_20230119_202008.webp | 3 ++ .../posts/computer-architecture-pipeline.md | 17 +++++----- .../image-20240612184855300.png | 3 -- .../image-20240612184855300.webp | 3 ++ .../image-20240612184949777.png | 3 -- .../image-20240612184949777.webp | 3 ++ .../image-20240612190426368.png | 3 -- .../image-20240612190426368.webp | 3 ++ .../image-20240612192700169.png | 3 -- .../image-20240612192700169.webp | 3 ++ .../image-20240612193301372.png | 3 -- .../image-20240612193301372.webp | 3 ++ YaeBlog/source/posts/daily-linux-0.md | 12 +++---- ...12-13-28-38-Screenshot_20230112_132829.png | 3 -- ...2-13-28-38-Screenshot_20230112_132829.webp | 3 ++ ...12-13-36-45-Screenshot_20230112_133628.png | 3 -- ...2-13-36-45-Screenshot_20230112_133628.webp | 3 ++ YaeBlog/source/posts/daily-linux-2.md | 12 +++---- ...11f6be2724b3b4725f7ce5a4078818844857.avif} | 0 .../daily-linux-2/image-20230702205919301.png | 3 -- .../image-20230702205919301.webp | 3 ++ YaeBlog/source/posts/daily-linux-3.md | 10 +++--- .../Screenshot_20230904_144149.png | 3 -- .../Screenshot_20230904_144149.webp | 3 ++ YaeBlog/source/posts/daily-linux-4.md | 17 +++++----- .../Screenshot_20240309_115143.png | 3 -- .../Screenshot_20240309_115143.webp | 3 ++ ...01a8e8c69fecf247f17fc1-1709963611271-2.jpg | 3 -- ...1a8e8c69fecf247f17fc1-1709963611271-2.webp | 3 ++ .../daily-linux-4/image-20240309130329784.png | 3 -- .../image-20240309130329784.webp | 3 ++ .../daily-linux-4/image-20240309131750535.png | 3 -- .../image-20240309131750535.webp | 3 ++ .../daily-linux-4/image-20240309134847166.png | 3 -- .../image-20240309134847166.webp | 3 ++ YaeBlog/source/posts/dotnet-performance-8.md | 7 ++-- .../HeapsWhereNetObjectsLive.png | 3 -- .../HeapsWhereNetObjectsLive.webp | 3 ++ .../image-20240828135354598.png | 3 -- .../image-20240828135354598.webp | 3 ++ .../image-20240828155556375.png | 3 -- .../image-20240828155556375.webp | 3 ++ YaeBlog/source/posts/environment-setting.md | 8 ++--- .../source/posts/environment-setting/6.png | 3 -- .../source/posts/environment-setting/6.webp | 3 ++ YaeBlog/source/posts/genshin-gacha-1.md | 21 ++++++------ .../2022-12-31-13-06-36-image.png | 3 -- .../2022-12-31-13-06-36-image.webp | 3 ++ .../2022-12-31-13-20-46-image.png | 3 -- .../2022-12-31-13-20-46-image.webp | 3 ++ .../2022-12-31-13-21-11-image.png | 3 -- .../2022-12-31-13-21-11-image.webp | 3 ++ .../2022-12-31-13-24-26-image.png | 3 -- .../2022-12-31-13-24-26-image.webp | 3 ++ .../2022-12-31-15-59-20-image.png | 3 -- .../2022-12-31-15-59-20-image.webp | 3 ++ .../2022-12-31-15-59-42-image.png | 3 -- .../2022-12-31-15-59-42-image.webp | 3 ++ .../2022-12-31-16-00-10-image.png | 3 -- .../2022-12-31-16-00-10-image.webp | 3 ++ .../posts/heterogeneous-programming-model.md | 21 ++++++------ .../83ee1d254d638536d0fb4197ff63e758.png | 3 -- .../83ee1d254d638536d0fb4197ff63e758.webp | 3 ++ .../9eb06d8be92ddef3db33e040163c67a7.png | 3 -- .../9eb06d8be92ddef3db33e040163c67a7.webp | 3 ++ .../Screenshot_20241016_214139.png | 3 -- .../Screenshot_20241016_214139.webp | 3 ++ .../Screenshot_20241016_214939.png | 3 -- .../Screenshot_20241016_214939.webp | 3 ++ .../eab553f9e30d8d866a1ddd201b5e4c85.png | 3 -- .../eab553f9e30d8d866a1ddd201b5e4c85.webp | 3 ++ .../image-20241020142938110.png | 3 -- .../image-20241020142938110.webp | 3 ++ .../image-20241020155656219.png | 3 -- .../image-20241020155656219.webp | 3 ++ .../image-20241029123308139.png | 3 -- .../image-20241029123308139.webp | 3 ++ .../image-20241029163654675.png | 3 -- .../image-20241029163654675.webp | 3 ++ .../image-20241103162259981.png | 3 -- .../image-20241103162259981.webp | 3 ++ .../source/posts/hpc-2025-cpu-architecture.md | 7 ++-- .../image-20250313184421305.png | 3 -- .../image-20250313184421305.webp | 3 ++ .../image-20250313184732892.png | 3 -- .../image-20250313184732892.webp | 3 ++ .../image-20250313190913475.png | 3 -- .../image-20250313190913475.webp | 3 ++ YaeBlog/source/posts/install-pytorch.md | 17 +++++----- YaeBlog/source/posts/install-pytorch/1.png | 3 -- YaeBlog/source/posts/install-pytorch/1.webp | 3 ++ YaeBlog/source/posts/install-pytorch/2.png | 3 -- YaeBlog/source/posts/install-pytorch/2.webp | 3 ++ YaeBlog/source/posts/install-pytorch/3.png | 3 -- YaeBlog/source/posts/install-pytorch/3.webp | 3 ++ YaeBlog/source/posts/install-pytorch/4.png | 3 -- YaeBlog/source/posts/install-pytorch/4.webp | 3 ++ YaeBlog/source/posts/laptop-for-computer.md | 14 ++++---- .../source/posts/laptop-for-computer/c.png | 3 -- .../source/posts/laptop-for-computer/c.webp | 3 ++ .../posts/laptop-for-computer/clion.png | 3 -- .../posts/laptop-for-computer/clion.webp | 3 ++ .../posts/laptop-for-computer/csharp.png | 3 -- .../posts/laptop-for-computer/csharp.webp | 3 ++ .../source/posts/laptop-for-computer/web.png | 3 -- .../source/posts/laptop-for-computer/web.webp | 3 ++ YaeBlog/source/posts/llvm-naive-0.md | 9 ++--- .../llvm-naive-0/image-20240819213039409.png | 3 -- .../llvm-naive-0/image-20240819213039409.webp | 3 ++ .../llvm-naive-0/image-20240819213624927.png | 3 -- .../llvm-naive-0/image-20240819213624927.webp | 3 ++ .../llvm-naive-0/image-20240820221413791.png | 3 -- .../llvm-naive-0/image-20240820221413791.webp | 3 ++ .../llvm-naive-0/image-20240825171858276.png | 3 -- .../llvm-naive-0/image-20240825171858276.webp | 3 ++ YaeBlog/source/posts/minecraft-wayland.md | 13 ++++---- .../image-20240105212744116.png | 3 -- .../image-20240105212744116.webp | 3 ++ .../image-20240105213439528.png | 3 -- .../image-20240105213439528.webp | 3 ++ .../image-20240105213942445.png | 3 -- .../image-20240105213942445.webp | 3 ++ YaeBlog/source/posts/mlir-standalone.md | 15 +++++---- .../image-20250319192618697.png | 3 -- .../image-20250319192618697.webp | 3 ++ .../image-20250319194742171.png | 3 -- .../image-20250319194742171.webp | 3 ++ .../image-20250319202218503.png | 3 -- .../image-20250319202218503.webp | 3 ++ .../image-20250319202553644.png | 3 -- .../image-20250319202553644.webp | 3 ++ .../image-20250319204057832.png | 3 -- .../image-20250319204057832.webp | 3 ++ .../image-20250319204522857.png | 3 -- .../image-20250319204522857.webp | 3 ++ .../image-20250319205520649.png | 3 -- .../image-20250319205520649.webp | 3 ++ .../posts/parser-combinator-performance.md | 9 ++--- .../image-20240819140523087.png | 3 -- .../image-20240819140523087.webp | 3 ++ YaeBlog/source/posts/parser-combinator.md | 15 +++++---- .../image-20240813214315576.png | 3 -- .../image-20240813214315576.webp | 3 ++ .../image-20240813220521028.png | 3 -- .../image-20240813220521028.webp | 3 ++ .../image-20240813220530717.png | 3 -- .../image-20240813220530717.webp | 3 ++ .../posts/program-design-introduction.md | 11 ++++--- .../posts/program-design-introduction/1.png | 3 -- .../posts/program-design-introduction/1.webp | 3 ++ .../posts/program-design-introduction/2.png | 3 -- .../posts/program-design-introduction/2.webp | 3 ++ .../posts/program-design-introduction/3.png | 3 -- .../posts/program-design-introduction/3.webp | 3 ++ YaeBlog/source/posts/qt-learning.md | 10 +++--- YaeBlog/source/posts/qt-learning/1.png | 3 -- YaeBlog/source/posts/qt-learning/1.webp | 3 ++ .../posts/question-in-install-vs-2019.md | 9 ++--- .../posts/question-in-install-vs-2019/1.png | 3 -- .../posts/question-in-install-vs-2019/1.webp | 3 ++ .../source/posts/rust-drop-stack-overflow.md | 7 ++-- .../image-20241105181144993.png | 3 -- .../image-20241105181144993.webp | 3 ++ .../image-20241105181612954.png | 3 -- .../image-20241105181612954.webp | 3 ++ .../image-20241105182036975.png | 3 -- .../image-20241105182036975.webp | 3 ++ YaeBlog/source/posts/software-engineer.md | 33 ++++++++++--------- .../image-20240620211321957.png | 3 -- .../image-20240620211321957.webp | 3 ++ .../image-20240620212101864.png | 3 -- .../image-20240620212101864.webp | 3 ++ .../image-20240620214307906.png | 3 -- .../image-20240620214307906.webp | 3 ++ .../image-20240620214739548.png | 3 -- .../image-20240620214739548.webp | 3 ++ .../image-20240620215022645.png | 3 -- .../image-20240620215022645.webp | 3 ++ .../image-20240620220155962.png | 3 -- .../image-20240620220155962.webp | 3 ++ .../image-20240620224318982.png | 3 -- .../image-20240620224318982.webp | 3 ++ .../image-20240620224519243.png | 3 -- .../image-20240620224519243.webp | 3 ++ .../image-20240621114540033.png | 3 -- .../image-20240621114540033.webp | 3 ++ .../image-20240623160826903.png | 3 -- .../image-20240623160826903.webp | 3 ++ .../image-20240623162229404.png | 3 -- .../image-20240623162229404.webp | 3 ++ .../image-20240623163647935.png | 3 -- .../image-20240623163647935.webp | 3 ++ .../image-20240623170058679.png | 3 -- .../image-20240623170058679.webp | 3 ++ .../posts/spring-boot-custom-authorize.md | 11 ++++--- .../image-20230727175807814.png | 3 -- .../image-20230727175807814.webp | 3 ++ .../image-20230727175955817.png | 3 -- .../image-20230727175955817.webp | 3 ++ YaeBlog/source/posts/vscode-in-browser.md | 9 ++--- YaeBlog/source/posts/vscode-in-browser/1.png | 3 -- YaeBlog/source/posts/vscode-in-browser/1.webp | 3 ++ YaeBlog/source/posts/vscode-in-browser/2.png | 3 -- YaeBlog/source/posts/vscode-in-browser/2.webp | 3 ++ YaeBlog/source/posts/whats-new-of-dotnet-8.md | 15 +++++---- .../AOTOptimizations4.png | 3 -- .../AOTOptimizations4.webp | 3 ++ .../image-20231122100930849.png | 3 -- .../image-20231122100930849.webp | 3 ++ .../image-20231122101012416.png | 3 -- .../image-20231122101012416.webp | 3 ++ .../image-20231122101142080.png | 3 -- .../image-20231122101142080.webp | 3 ++ YaeBlog/source/posts/wsl-setup-csapp.md | 14 ++++---- YaeBlog/source/posts/wsl-setup-csapp/1.png | 3 -- YaeBlog/source/posts/wsl-setup-csapp/1.webp | 3 ++ YaeBlog/source/posts/wsl-setup-csapp/2.png | 3 -- YaeBlog/source/posts/wsl-setup-csapp/2.webp | 3 ++ YaeBlog/source/posts/wsl-setup-csapp/3.png | 3 -- YaeBlog/source/posts/wsl-setup-csapp/3.webp | 3 ++ 275 files changed, 590 insertions(+), 564 deletions(-) delete mode 100644 YaeBlog/source/posts/2021-final/1.png create mode 100644 YaeBlog/source/posts/2021-final/1.webp delete mode 100644 YaeBlog/source/posts/2022-final/2022-12-30-14-26-19-QQ_Image_1672381538441.jpg create mode 100644 YaeBlog/source/posts/2022-final/2022-12-30-14-26-19-QQ_Image_1672381538441.webp delete mode 100644 YaeBlog/source/posts/2022-final/2022-12-30-14-28-12-QQ_Image_1672381543836.jpg create mode 100644 YaeBlog/source/posts/2022-final/2022-12-30-14-28-12-QQ_Image_1672381543836.webp delete mode 100644 YaeBlog/source/posts/2022-summer-vacation/result1.png create mode 100644 YaeBlog/source/posts/2022-summer-vacation/result1.webp delete mode 100644 YaeBlog/source/posts/2023-final/image-20240303165826486.png create mode 100644 YaeBlog/source/posts/2023-final/image-20240303165826486.webp delete mode 100644 YaeBlog/source/posts/2024-final/image-20250115171809775.png create mode 100644 YaeBlog/source/posts/2024-final/image-20250115171809775.webp delete mode 100644 YaeBlog/source/posts/big-homework/1.png create mode 100644 YaeBlog/source/posts/big-homework/1.webp delete mode 100644 YaeBlog/source/posts/build-blog-record/1.png create mode 100644 YaeBlog/source/posts/build-blog-record/1.webp delete mode 100644 YaeBlog/source/posts/build-blog-record/2.png create mode 100644 YaeBlog/source/posts/build-blog-record/2.webp delete mode 100644 YaeBlog/source/posts/build-dotnet-from-source/image-20240824120646587.png create mode 100644 YaeBlog/source/posts/build-dotnet-from-source/image-20240824120646587.webp delete mode 100644 YaeBlog/source/posts/build-dotnet-from-source/image-20240824121425007.png create mode 100644 YaeBlog/source/posts/build-dotnet-from-source/image-20240824121425007.webp delete mode 100644 YaeBlog/source/posts/build-dotnet-from-source/image-20240824134158262.png create mode 100644 YaeBlog/source/posts/build-dotnet-from-source/image-20240824134158262.webp delete mode 100644 YaeBlog/source/posts/build-dotnet-from-source/image-20240824153514149.png create mode 100644 YaeBlog/source/posts/build-dotnet-from-source/image-20240824153514149.webp delete mode 100644 YaeBlog/source/posts/build-dotnet-from-source/image-20240824214145759.png create mode 100644 YaeBlog/source/posts/build-dotnet-from-source/image-20240824214145759.webp delete mode 100644 YaeBlog/source/posts/c-include-problems/1.png create mode 100644 YaeBlog/source/posts/c-include-problems/1.webp delete mode 100644 YaeBlog/source/posts/c-include-problems/2.png create mode 100644 YaeBlog/source/posts/c-include-problems/2.webp delete mode 100644 YaeBlog/source/posts/cncc-2024/image-20241102211959206.png create mode 100644 YaeBlog/source/posts/cncc-2024/image-20241102211959206.webp delete mode 100644 YaeBlog/source/posts/cncc-2024/image-20241102212355390.png create mode 100644 YaeBlog/source/posts/cncc-2024/image-20241102212355390.webp delete mode 100644 YaeBlog/source/posts/cncc-2024/image-20241102212536635.png create mode 100644 YaeBlog/source/posts/cncc-2024/image-20241102212536635.webp delete mode 100644 YaeBlog/source/posts/cncc-2024/image-20241102212738598.png create mode 100644 YaeBlog/source/posts/cncc-2024/image-20241102212738598.webp delete mode 100644 YaeBlog/source/posts/compile-mediapipe/2023-01-15-22-05-41-Screenshot_20230115_220521.png create mode 100644 YaeBlog/source/posts/compile-mediapipe/2023-01-15-22-05-41-Screenshot_20230115_220521.webp delete mode 100644 YaeBlog/source/posts/compile-mediapipe/2023-01-19-20-20-40-Screenshot_20230119_202008.png create mode 100644 YaeBlog/source/posts/compile-mediapipe/2023-01-19-20-20-40-Screenshot_20230119_202008.webp delete mode 100644 YaeBlog/source/posts/computer-architecture-pipeline/image-20240612184855300.png create mode 100644 YaeBlog/source/posts/computer-architecture-pipeline/image-20240612184855300.webp delete mode 100644 YaeBlog/source/posts/computer-architecture-pipeline/image-20240612184949777.png create mode 100644 YaeBlog/source/posts/computer-architecture-pipeline/image-20240612184949777.webp delete mode 100644 YaeBlog/source/posts/computer-architecture-pipeline/image-20240612190426368.png create mode 100644 YaeBlog/source/posts/computer-architecture-pipeline/image-20240612190426368.webp delete mode 100644 YaeBlog/source/posts/computer-architecture-pipeline/image-20240612192700169.png create mode 100644 YaeBlog/source/posts/computer-architecture-pipeline/image-20240612192700169.webp delete mode 100644 YaeBlog/source/posts/computer-architecture-pipeline/image-20240612193301372.png create mode 100644 YaeBlog/source/posts/computer-architecture-pipeline/image-20240612193301372.webp delete mode 100644 YaeBlog/source/posts/daily-linux-0/2023-01-12-13-28-38-Screenshot_20230112_132829.png create mode 100644 YaeBlog/source/posts/daily-linux-0/2023-01-12-13-28-38-Screenshot_20230112_132829.webp delete mode 100644 YaeBlog/source/posts/daily-linux-0/2023-01-12-13-36-45-Screenshot_20230112_133628.png create mode 100644 YaeBlog/source/posts/daily-linux-0/2023-01-12-13-36-45-Screenshot_20230112_133628.webp rename YaeBlog/source/posts/daily-linux-2/{df4211f6be2724b3b4725f7ce5a4078818844857.jpg => df4211f6be2724b3b4725f7ce5a4078818844857.avif} (100%) delete mode 100644 YaeBlog/source/posts/daily-linux-2/image-20230702205919301.png create mode 100644 YaeBlog/source/posts/daily-linux-2/image-20230702205919301.webp delete mode 100644 YaeBlog/source/posts/daily-linux-3/Screenshot_20230904_144149.png create mode 100644 YaeBlog/source/posts/daily-linux-3/Screenshot_20230904_144149.webp delete mode 100644 YaeBlog/source/posts/daily-linux-4/Screenshot_20240309_115143.png create mode 100644 YaeBlog/source/posts/daily-linux-4/Screenshot_20240309_115143.webp delete mode 100644 YaeBlog/source/posts/daily-linux-4/cfd17cff0701a8e8c69fecf247f17fc1-1709963611271-2.jpg create mode 100644 YaeBlog/source/posts/daily-linux-4/cfd17cff0701a8e8c69fecf247f17fc1-1709963611271-2.webp delete mode 100644 YaeBlog/source/posts/daily-linux-4/image-20240309130329784.png create mode 100644 YaeBlog/source/posts/daily-linux-4/image-20240309130329784.webp delete mode 100644 YaeBlog/source/posts/daily-linux-4/image-20240309131750535.png create mode 100644 YaeBlog/source/posts/daily-linux-4/image-20240309131750535.webp delete mode 100644 YaeBlog/source/posts/daily-linux-4/image-20240309134847166.png create mode 100644 YaeBlog/source/posts/daily-linux-4/image-20240309134847166.webp delete mode 100644 YaeBlog/source/posts/dotnet-performance-8/HeapsWhereNetObjectsLive.png create mode 100644 YaeBlog/source/posts/dotnet-performance-8/HeapsWhereNetObjectsLive.webp delete mode 100644 YaeBlog/source/posts/dotnet-performance-8/image-20240828135354598.png create mode 100644 YaeBlog/source/posts/dotnet-performance-8/image-20240828135354598.webp delete mode 100644 YaeBlog/source/posts/dotnet-performance-8/image-20240828155556375.png create mode 100644 YaeBlog/source/posts/dotnet-performance-8/image-20240828155556375.webp delete mode 100644 YaeBlog/source/posts/environment-setting/6.png create mode 100644 YaeBlog/source/posts/environment-setting/6.webp delete mode 100644 YaeBlog/source/posts/genshin-gacha-1/2022-12-31-13-06-36-image.png create mode 100644 YaeBlog/source/posts/genshin-gacha-1/2022-12-31-13-06-36-image.webp delete mode 100644 YaeBlog/source/posts/genshin-gacha-1/2022-12-31-13-20-46-image.png create mode 100644 YaeBlog/source/posts/genshin-gacha-1/2022-12-31-13-20-46-image.webp delete mode 100644 YaeBlog/source/posts/genshin-gacha-1/2022-12-31-13-21-11-image.png create mode 100644 YaeBlog/source/posts/genshin-gacha-1/2022-12-31-13-21-11-image.webp delete mode 100644 YaeBlog/source/posts/genshin-gacha-1/2022-12-31-13-24-26-image.png create mode 100644 YaeBlog/source/posts/genshin-gacha-1/2022-12-31-13-24-26-image.webp delete mode 100644 YaeBlog/source/posts/genshin-gacha-1/2022-12-31-15-59-20-image.png create mode 100644 YaeBlog/source/posts/genshin-gacha-1/2022-12-31-15-59-20-image.webp delete mode 100644 YaeBlog/source/posts/genshin-gacha-1/2022-12-31-15-59-42-image.png create mode 100644 YaeBlog/source/posts/genshin-gacha-1/2022-12-31-15-59-42-image.webp delete mode 100644 YaeBlog/source/posts/genshin-gacha-1/2022-12-31-16-00-10-image.png create mode 100644 YaeBlog/source/posts/genshin-gacha-1/2022-12-31-16-00-10-image.webp delete mode 100644 YaeBlog/source/posts/heterogeneous-programming-model/83ee1d254d638536d0fb4197ff63e758.png create mode 100644 YaeBlog/source/posts/heterogeneous-programming-model/83ee1d254d638536d0fb4197ff63e758.webp delete mode 100644 YaeBlog/source/posts/heterogeneous-programming-model/9eb06d8be92ddef3db33e040163c67a7.png create mode 100644 YaeBlog/source/posts/heterogeneous-programming-model/9eb06d8be92ddef3db33e040163c67a7.webp delete mode 100644 YaeBlog/source/posts/heterogeneous-programming-model/Screenshot_20241016_214139.png create mode 100644 YaeBlog/source/posts/heterogeneous-programming-model/Screenshot_20241016_214139.webp delete mode 100644 YaeBlog/source/posts/heterogeneous-programming-model/Screenshot_20241016_214939.png create mode 100644 YaeBlog/source/posts/heterogeneous-programming-model/Screenshot_20241016_214939.webp delete mode 100644 YaeBlog/source/posts/heterogeneous-programming-model/eab553f9e30d8d866a1ddd201b5e4c85.png create mode 100644 YaeBlog/source/posts/heterogeneous-programming-model/eab553f9e30d8d866a1ddd201b5e4c85.webp delete mode 100644 YaeBlog/source/posts/heterogeneous-programming-model/image-20241020142938110.png create mode 100644 YaeBlog/source/posts/heterogeneous-programming-model/image-20241020142938110.webp delete mode 100644 YaeBlog/source/posts/heterogeneous-programming-model/image-20241020155656219.png create mode 100644 YaeBlog/source/posts/heterogeneous-programming-model/image-20241020155656219.webp delete mode 100644 YaeBlog/source/posts/heterogeneous-programming-model/image-20241029123308139.png create mode 100644 YaeBlog/source/posts/heterogeneous-programming-model/image-20241029123308139.webp delete mode 100644 YaeBlog/source/posts/heterogeneous-programming-model/image-20241029163654675.png create mode 100644 YaeBlog/source/posts/heterogeneous-programming-model/image-20241029163654675.webp delete mode 100644 YaeBlog/source/posts/heterogeneous-programming-model/image-20241103162259981.png create mode 100644 YaeBlog/source/posts/heterogeneous-programming-model/image-20241103162259981.webp delete mode 100644 YaeBlog/source/posts/hpc-2025-cpu-architecture/image-20250313184421305.png create mode 100644 YaeBlog/source/posts/hpc-2025-cpu-architecture/image-20250313184421305.webp delete mode 100644 YaeBlog/source/posts/hpc-2025-cpu-architecture/image-20250313184732892.png create mode 100644 YaeBlog/source/posts/hpc-2025-cpu-architecture/image-20250313184732892.webp delete mode 100644 YaeBlog/source/posts/hpc-2025-cpu-architecture/image-20250313190913475.png create mode 100644 YaeBlog/source/posts/hpc-2025-cpu-architecture/image-20250313190913475.webp delete mode 100644 YaeBlog/source/posts/install-pytorch/1.png create mode 100644 YaeBlog/source/posts/install-pytorch/1.webp delete mode 100644 YaeBlog/source/posts/install-pytorch/2.png create mode 100644 YaeBlog/source/posts/install-pytorch/2.webp delete mode 100644 YaeBlog/source/posts/install-pytorch/3.png create mode 100644 YaeBlog/source/posts/install-pytorch/3.webp delete mode 100644 YaeBlog/source/posts/install-pytorch/4.png create mode 100644 YaeBlog/source/posts/install-pytorch/4.webp delete mode 100644 YaeBlog/source/posts/laptop-for-computer/c.png create mode 100644 YaeBlog/source/posts/laptop-for-computer/c.webp delete mode 100644 YaeBlog/source/posts/laptop-for-computer/clion.png create mode 100644 YaeBlog/source/posts/laptop-for-computer/clion.webp delete mode 100644 YaeBlog/source/posts/laptop-for-computer/csharp.png create mode 100644 YaeBlog/source/posts/laptop-for-computer/csharp.webp delete mode 100644 YaeBlog/source/posts/laptop-for-computer/web.png create mode 100644 YaeBlog/source/posts/laptop-for-computer/web.webp delete mode 100644 YaeBlog/source/posts/llvm-naive-0/image-20240819213039409.png create mode 100644 YaeBlog/source/posts/llvm-naive-0/image-20240819213039409.webp delete mode 100644 YaeBlog/source/posts/llvm-naive-0/image-20240819213624927.png create mode 100644 YaeBlog/source/posts/llvm-naive-0/image-20240819213624927.webp delete mode 100644 YaeBlog/source/posts/llvm-naive-0/image-20240820221413791.png create mode 100644 YaeBlog/source/posts/llvm-naive-0/image-20240820221413791.webp delete mode 100644 YaeBlog/source/posts/llvm-naive-0/image-20240825171858276.png create mode 100644 YaeBlog/source/posts/llvm-naive-0/image-20240825171858276.webp delete mode 100644 YaeBlog/source/posts/minecraft-wayland/image-20240105212744116.png create mode 100644 YaeBlog/source/posts/minecraft-wayland/image-20240105212744116.webp delete mode 100644 YaeBlog/source/posts/minecraft-wayland/image-20240105213439528.png create mode 100644 YaeBlog/source/posts/minecraft-wayland/image-20240105213439528.webp delete mode 100644 YaeBlog/source/posts/minecraft-wayland/image-20240105213942445.png create mode 100644 YaeBlog/source/posts/minecraft-wayland/image-20240105213942445.webp delete mode 100644 YaeBlog/source/posts/mlir-standalone/image-20250319192618697.png create mode 100644 YaeBlog/source/posts/mlir-standalone/image-20250319192618697.webp delete mode 100644 YaeBlog/source/posts/mlir-standalone/image-20250319194742171.png create mode 100644 YaeBlog/source/posts/mlir-standalone/image-20250319194742171.webp delete mode 100644 YaeBlog/source/posts/mlir-standalone/image-20250319202218503.png create mode 100644 YaeBlog/source/posts/mlir-standalone/image-20250319202218503.webp delete mode 100644 YaeBlog/source/posts/mlir-standalone/image-20250319202553644.png create mode 100644 YaeBlog/source/posts/mlir-standalone/image-20250319202553644.webp delete mode 100644 YaeBlog/source/posts/mlir-standalone/image-20250319204057832.png create mode 100644 YaeBlog/source/posts/mlir-standalone/image-20250319204057832.webp delete mode 100644 YaeBlog/source/posts/mlir-standalone/image-20250319204522857.png create mode 100644 YaeBlog/source/posts/mlir-standalone/image-20250319204522857.webp delete mode 100644 YaeBlog/source/posts/mlir-standalone/image-20250319205520649.png create mode 100644 YaeBlog/source/posts/mlir-standalone/image-20250319205520649.webp delete mode 100644 YaeBlog/source/posts/parser-combinator-performance/image-20240819140523087.png create mode 100644 YaeBlog/source/posts/parser-combinator-performance/image-20240819140523087.webp delete mode 100644 YaeBlog/source/posts/parser-combinator/image-20240813214315576.png create mode 100644 YaeBlog/source/posts/parser-combinator/image-20240813214315576.webp delete mode 100644 YaeBlog/source/posts/parser-combinator/image-20240813220521028.png create mode 100644 YaeBlog/source/posts/parser-combinator/image-20240813220521028.webp delete mode 100644 YaeBlog/source/posts/parser-combinator/image-20240813220530717.png create mode 100644 YaeBlog/source/posts/parser-combinator/image-20240813220530717.webp delete mode 100644 YaeBlog/source/posts/program-design-introduction/1.png create mode 100644 YaeBlog/source/posts/program-design-introduction/1.webp delete mode 100644 YaeBlog/source/posts/program-design-introduction/2.png create mode 100644 YaeBlog/source/posts/program-design-introduction/2.webp delete mode 100644 YaeBlog/source/posts/program-design-introduction/3.png create mode 100644 YaeBlog/source/posts/program-design-introduction/3.webp delete mode 100644 YaeBlog/source/posts/qt-learning/1.png create mode 100644 YaeBlog/source/posts/qt-learning/1.webp delete mode 100644 YaeBlog/source/posts/question-in-install-vs-2019/1.png create mode 100644 YaeBlog/source/posts/question-in-install-vs-2019/1.webp delete mode 100644 YaeBlog/source/posts/rust-drop-stack-overflow/image-20241105181144993.png create mode 100644 YaeBlog/source/posts/rust-drop-stack-overflow/image-20241105181144993.webp delete mode 100644 YaeBlog/source/posts/rust-drop-stack-overflow/image-20241105181612954.png create mode 100644 YaeBlog/source/posts/rust-drop-stack-overflow/image-20241105181612954.webp delete mode 100644 YaeBlog/source/posts/rust-drop-stack-overflow/image-20241105182036975.png create mode 100644 YaeBlog/source/posts/rust-drop-stack-overflow/image-20241105182036975.webp delete mode 100644 YaeBlog/source/posts/software-engineer/image-20240620211321957.png create mode 100644 YaeBlog/source/posts/software-engineer/image-20240620211321957.webp delete mode 100644 YaeBlog/source/posts/software-engineer/image-20240620212101864.png create mode 100644 YaeBlog/source/posts/software-engineer/image-20240620212101864.webp delete mode 100644 YaeBlog/source/posts/software-engineer/image-20240620214307906.png create mode 100644 YaeBlog/source/posts/software-engineer/image-20240620214307906.webp delete mode 100644 YaeBlog/source/posts/software-engineer/image-20240620214739548.png create mode 100644 YaeBlog/source/posts/software-engineer/image-20240620214739548.webp delete mode 100644 YaeBlog/source/posts/software-engineer/image-20240620215022645.png create mode 100644 YaeBlog/source/posts/software-engineer/image-20240620215022645.webp delete mode 100644 YaeBlog/source/posts/software-engineer/image-20240620220155962.png create mode 100644 YaeBlog/source/posts/software-engineer/image-20240620220155962.webp delete mode 100644 YaeBlog/source/posts/software-engineer/image-20240620224318982.png create mode 100644 YaeBlog/source/posts/software-engineer/image-20240620224318982.webp delete mode 100644 YaeBlog/source/posts/software-engineer/image-20240620224519243.png create mode 100644 YaeBlog/source/posts/software-engineer/image-20240620224519243.webp delete mode 100644 YaeBlog/source/posts/software-engineer/image-20240621114540033.png create mode 100644 YaeBlog/source/posts/software-engineer/image-20240621114540033.webp delete mode 100644 YaeBlog/source/posts/software-engineer/image-20240623160826903.png create mode 100644 YaeBlog/source/posts/software-engineer/image-20240623160826903.webp delete mode 100644 YaeBlog/source/posts/software-engineer/image-20240623162229404.png create mode 100644 YaeBlog/source/posts/software-engineer/image-20240623162229404.webp delete mode 100644 YaeBlog/source/posts/software-engineer/image-20240623163647935.png create mode 100644 YaeBlog/source/posts/software-engineer/image-20240623163647935.webp delete mode 100644 YaeBlog/source/posts/software-engineer/image-20240623170058679.png create mode 100644 YaeBlog/source/posts/software-engineer/image-20240623170058679.webp delete mode 100644 YaeBlog/source/posts/spring-boot-custom-authorize/image-20230727175807814.png create mode 100644 YaeBlog/source/posts/spring-boot-custom-authorize/image-20230727175807814.webp delete mode 100644 YaeBlog/source/posts/spring-boot-custom-authorize/image-20230727175955817.png create mode 100644 YaeBlog/source/posts/spring-boot-custom-authorize/image-20230727175955817.webp delete mode 100644 YaeBlog/source/posts/vscode-in-browser/1.png create mode 100644 YaeBlog/source/posts/vscode-in-browser/1.webp delete mode 100644 YaeBlog/source/posts/vscode-in-browser/2.png create mode 100644 YaeBlog/source/posts/vscode-in-browser/2.webp delete mode 100644 YaeBlog/source/posts/whats-new-of-dotnet-8/AOTOptimizations4.png create mode 100644 YaeBlog/source/posts/whats-new-of-dotnet-8/AOTOptimizations4.webp delete mode 100644 YaeBlog/source/posts/whats-new-of-dotnet-8/image-20231122100930849.png create mode 100644 YaeBlog/source/posts/whats-new-of-dotnet-8/image-20231122100930849.webp delete mode 100644 YaeBlog/source/posts/whats-new-of-dotnet-8/image-20231122101012416.png create mode 100644 YaeBlog/source/posts/whats-new-of-dotnet-8/image-20231122101012416.webp delete mode 100644 YaeBlog/source/posts/whats-new-of-dotnet-8/image-20231122101142080.png create mode 100644 YaeBlog/source/posts/whats-new-of-dotnet-8/image-20231122101142080.webp delete mode 100644 YaeBlog/source/posts/wsl-setup-csapp/1.png create mode 100644 YaeBlog/source/posts/wsl-setup-csapp/1.webp delete mode 100644 YaeBlog/source/posts/wsl-setup-csapp/2.png create mode 100644 YaeBlog/source/posts/wsl-setup-csapp/2.webp delete mode 100644 YaeBlog/source/posts/wsl-setup-csapp/3.png create mode 100644 YaeBlog/source/posts/wsl-setup-csapp/3.webp diff --git a/.gitattributes b/.gitattributes index 1691f22..f5589bc 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,2 +1,4 @@ *.png filter=lfs diff=lfs merge=lfs -text *.jpg filter=lfs diff=lfs merge=lfs -text +*.avif filter=lfs diff=lfs merge=lfs -text +*.webp filter=lfs diff=lfs merge=lfs -text diff --git a/YaeBlog/source/posts/2021-final.md b/YaeBlog/source/posts/2021-final.md index 619d73a..7f54bbd 100644 --- a/YaeBlog/source/posts/2021-final.md +++ b/YaeBlog/source/posts/2021-final.md @@ -1,11 +1,12 @@ --- title: 2021年终总结 -date: 2022-01-12 16:27:19 +date: 2022-01-12T16:27:19.0000000 tags: - - 杂谈 - - 年终总结 +- 杂谈 +- 年终总结 --- + 2021年已经过去,2022年已经来临。每每一年开始的时候,我都会展开一张纸或者新建一个文档,思量着又是一年时光,也该同诸大杂志一般,写几句意味深长的话语,怀念过去的时光,也祝福未来的自己。可往往脑海中已是三万字的长篇,落在笔头却又是一个字都没有了。 如今跨年的时候已经过去,朋友圈中已经不见文案的踪影,我也该重新提笔,细说自己2021年中做过的种种。 @@ -23,7 +24,7 @@ tags: 在前12年的学生生涯中,我们都在期待着这一次的暑假,以为在这个没有作业的假期里,我们就可以充分的享受人间的美好。可是,当时我们不知道,这人间的烦恼,可不止作业这一种,无论是突如其来的疫情导致开学延期,还是等待录取时的不安。 虽说在暑假时,拥有了自己的笔记本电脑,可是在高中三年屯下的游戏还是没有玩几个,看来我也是“喜加一”的受害者。虽然在高考后入坑了原神,但是假期间我并没有太过投入的玩。 暑假下定决心要好好的学一学,可是看着我gitee上暑假期间那稀疏的提交,我就知道我又摸了一个暑假的鱼。 -![gitee贡献](./2021-final/1.png) +![gitee贡献](./2021-final/1.webp) 即使我想写的很多项目都没有被扎实的推进下来,但是学习的一些的C语言还是让我受益匪浅。 现在看来,这个假期真是,**学也没有学好,耍也没有耍好**的典型。 diff --git a/YaeBlog/source/posts/2021-final/1.png b/YaeBlog/source/posts/2021-final/1.png deleted file mode 100644 index 81022e2..0000000 --- a/YaeBlog/source/posts/2021-final/1.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6c35d649045aeb7b80a4d1b18290feabb367a3841d87b727d550dd06566801b6 -size 8340 diff --git a/YaeBlog/source/posts/2021-final/1.webp b/YaeBlog/source/posts/2021-final/1.webp new file mode 100644 index 0000000..0f96b20 --- /dev/null +++ b/YaeBlog/source/posts/2021-final/1.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:435af818a4675aad44016e5c390c101ede156d1dfa445e851de32bdfb342d915 +size 2982 diff --git a/YaeBlog/source/posts/2022-final.md b/YaeBlog/source/posts/2022-final.md index 91637e6..fa58ecc 100644 --- a/YaeBlog/source/posts/2022-final.md +++ b/YaeBlog/source/posts/2022-final.md @@ -1,12 +1,13 @@ --- title: 2022年终总结 +date: 2022-12-30T14:58:12.0000000 tags: - - 杂谈 - - 年终总结 -date: 2022-12-30 14:58:12 +- 杂谈 +- 年终总结 --- + 2022是困难的一年。我们需要为2023年做好准备。 @@ -57,11 +58,11 @@ date: 2022-12-30 14:58:12 小小的总结一下:2022年可以算得上是一事无成的一年,还搞砸了不少的事情。在写代码上进展有限,成绩上大幅倒退,说好的六级英语和大学物理竞赛都没有参加,在年末应对疫情进展的时候更是把“不知所措”这个成语诠释的淋漓尽致。 -![](./2022-final/2022-12-30-14-26-19-QQ_Image_1672381538441.jpg) +![](./2022-final/2022-12-30-14-26-19-QQ_Image_1672381538441.webp) 关于今年的人际交往和社会关系,我愿意用QQ2022年年终总结中的一张截屏来总结,这张图片透漏出一种无可救药的悲伤。 -![](./2022-final/2022-12-30-14-28-12-QQ_Image_1672381543836.jpg) +![](./2022-final/2022-12-30-14-28-12-QQ_Image_1672381543836.webp) ## 展望 diff --git a/YaeBlog/source/posts/2022-final/2022-12-30-14-26-19-QQ_Image_1672381538441.jpg b/YaeBlog/source/posts/2022-final/2022-12-30-14-26-19-QQ_Image_1672381538441.jpg deleted file mode 100644 index cc4461f..0000000 --- a/YaeBlog/source/posts/2022-final/2022-12-30-14-26-19-QQ_Image_1672381538441.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9a8ba878ab36ef4d9e540be7e8ee83e5c5d980e3968f5c7bea2917fded6ff83d -size 83539 diff --git a/YaeBlog/source/posts/2022-final/2022-12-30-14-26-19-QQ_Image_1672381538441.webp b/YaeBlog/source/posts/2022-final/2022-12-30-14-26-19-QQ_Image_1672381538441.webp new file mode 100644 index 0000000..68361ff --- /dev/null +++ b/YaeBlog/source/posts/2022-final/2022-12-30-14-26-19-QQ_Image_1672381538441.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6e697061aab4e88f7b3eae2b91f9d2c9a9291da95d54f5bd4bfc0a1f6825cc9f +size 249208 diff --git a/YaeBlog/source/posts/2022-final/2022-12-30-14-28-12-QQ_Image_1672381543836.jpg b/YaeBlog/source/posts/2022-final/2022-12-30-14-28-12-QQ_Image_1672381543836.jpg deleted file mode 100644 index af7e125..0000000 --- a/YaeBlog/source/posts/2022-final/2022-12-30-14-28-12-QQ_Image_1672381543836.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7249babd4c5bdf499db30f92c20f18d4ff4fb4f0f7c2eff3afbf33bf8a37abe2 -size 122345 diff --git a/YaeBlog/source/posts/2022-final/2022-12-30-14-28-12-QQ_Image_1672381543836.webp b/YaeBlog/source/posts/2022-final/2022-12-30-14-28-12-QQ_Image_1672381543836.webp new file mode 100644 index 0000000..d3fa901 --- /dev/null +++ b/YaeBlog/source/posts/2022-final/2022-12-30-14-28-12-QQ_Image_1672381543836.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f663fe26e66a2498f12b0544993279d1458e165dde9c4c9046fc77d622ef5a9d +size 768344 diff --git a/YaeBlog/source/posts/2022-summer-vacation.md b/YaeBlog/source/posts/2022-summer-vacation.md index 39f9d13..3b53c96 100644 --- a/YaeBlog/source/posts/2022-summer-vacation.md +++ b/YaeBlog/source/posts/2022-summer-vacation.md @@ -1,11 +1,11 @@ --- title: 2022年暑假碎碎念 +date: 2022-08-22T15:39:13.0000000 tags: - - 杂谈 -typora-root-url: 2022-summer-vacation -date: 2022-08-22 15:39:13 +- 杂谈 --- + 在8个月的漫长寒假的最后两个月,~~也就是俗称的暑假中~~,我都干了些什么? @@ -32,7 +32,7 @@ date: 2022-08-22 15:39:13 - 下定决定要参加下一学期的物理竞赛,但是在听了讲座之后直接决定开学再开始学习,~~我知道我在家没法学习,俗称开摆~~ - 又捡起了`Blender`,并在[Github](https://github.com/tanjian1998/bupt_minecraft)上找到了伟大的前辈们在`Minecraft`里复刻的老校区,希望能用`Blender`渲染几张图当作桌面。 -![唯一的一张成品](result1.png) +![唯一的一张成品](result1.webp) > 在此感谢所有为此付出过汗水的前辈们,让我这个即将搬入老校区的萌新能提前一睹老校区的风采。 diff --git a/YaeBlog/source/posts/2022-summer-vacation/result1.png b/YaeBlog/source/posts/2022-summer-vacation/result1.png deleted file mode 100644 index 2d6effc..0000000 --- a/YaeBlog/source/posts/2022-summer-vacation/result1.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e69a4cb12a942e16e289babf4c9448ae91725f66915501fdb300924c5c436c9b -size 3225055 diff --git a/YaeBlog/source/posts/2022-summer-vacation/result1.webp b/YaeBlog/source/posts/2022-summer-vacation/result1.webp new file mode 100644 index 0000000..91b8e78 --- /dev/null +++ b/YaeBlog/source/posts/2022-summer-vacation/result1.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:15a99f1ad3aa6b4edb7d3567b7f2dafb287ff457c0492618e6c37df0cde3cc43 +size 137362 diff --git a/YaeBlog/source/posts/2023-final.md b/YaeBlog/source/posts/2023-final.md index 312097a..b06d0e6 100644 --- a/YaeBlog/source/posts/2023-final.md +++ b/YaeBlog/source/posts/2023-final.md @@ -1,11 +1,12 @@ --- title: 2023年年终总结 +date: 2024-02-29T20:18:19.0000000 tags: - - 杂谈 - - 年终总结 -date: 2024-2-29 20:18:19 +- 杂谈 +- 年终总结 --- + 虽然2023年已经过去了两个月,但是年终总结还是要发的。 @@ -44,7 +45,7 @@ date: 2024-2-29 20:18:19 2023年最令我吃惊的事情是我刷B站的时长: -![image-20240303165826486](2023-final/image-20240303165826486.png) +![image-20240303165826486](2023-final/image-20240303165826486.webp) 容易计算得出,我一共看了64天的B站,接近六分之一的时间都在看。虽然我确实有着在干活的时候黑听B站和把B站当作音乐播放器的习惯,但是这个时间未免有点太长了。下一年一定要在这个方面做出一定的改变,将更多的时间放在看书上面去,~~虽然写这句话的时候我就在黑听B站~~。 diff --git a/YaeBlog/source/posts/2023-final/image-20240303165826486.png b/YaeBlog/source/posts/2023-final/image-20240303165826486.png deleted file mode 100644 index 0d82809..0000000 --- a/YaeBlog/source/posts/2023-final/image-20240303165826486.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:92bf121700d13fc738d5bcf46d9a814629dbf16b7ca289433506f6e8af70396c -size 118808 diff --git a/YaeBlog/source/posts/2023-final/image-20240303165826486.webp b/YaeBlog/source/posts/2023-final/image-20240303165826486.webp new file mode 100644 index 0000000..43289ac --- /dev/null +++ b/YaeBlog/source/posts/2023-final/image-20240303165826486.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:614e92e6c52bbfc1e87811dd0c283abe1da70cee41e143b4398cff0a6bacdad2 +size 72936 diff --git a/YaeBlog/source/posts/2024-final.md b/YaeBlog/source/posts/2024-final.md index 1e12ad1..56411f3 100644 --- a/YaeBlog/source/posts/2024-final.md +++ b/YaeBlog/source/posts/2024-final.md @@ -6,6 +6,7 @@ tags: - 年终总结 --- + 欸,年终总结难道不是应该在新年当天发出吗,什么已经是新年第三天了?! 然而年末偶遇流感病毒,头疼脑热强如怪物,拼尽全力也无法战胜。 @@ -70,7 +71,7 @@ tags: 不过我的B站观看时长再度增长30%,这好吗,这不好,~~有这么多时间刷B站,鬼知道你匆匆在哪了~~。 -![image-20250115171809775](./2024-final/image-20250115171809775.png) +![image-20250115171809775](./2024-final/image-20250115171809775.webp) ### 未来 diff --git a/YaeBlog/source/posts/2024-final/image-20250115171809775.png b/YaeBlog/source/posts/2024-final/image-20250115171809775.png deleted file mode 100644 index d54b6f4..0000000 --- a/YaeBlog/source/posts/2024-final/image-20250115171809775.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6904fe34bcf46c1e9d672f278cedd54a59638cf2ea8d5a909acee9b436955387 -size 633715 diff --git a/YaeBlog/source/posts/2024-final/image-20250115171809775.webp b/YaeBlog/source/posts/2024-final/image-20250115171809775.webp new file mode 100644 index 0000000..74fdb8b --- /dev/null +++ b/YaeBlog/source/posts/2024-final/image-20250115171809775.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c89ea64941bb737a304acca227436c41cb0eb9e0764a33d967888135265ccddd +size 38728 diff --git a/YaeBlog/source/posts/big-homework.md b/YaeBlog/source/posts/big-homework.md index d763876..6f8b801 100644 --- a/YaeBlog/source/posts/big-homework.md +++ b/YaeBlog/source/posts/big-homework.md @@ -1,11 +1,11 @@ --- title: 人生代码大作业初体验 +date: 2022-07-27T11:34:49.0000000 tags: - - 杂谈 -typora-root-url: big-homework -date: 2022-07-27 11:34:49 +- 杂谈 --- + 在大学也呆了一年了,终于遇上了第一个需要多人合作的写代码项目。从四月底分组完成,任务部署下来到七月初接近尾声,在这两个多月的时间里,也算是经历了不少,学到了不少。 @@ -44,7 +44,7 @@ date: 2022-07-27 11:34:49 而且采用 `Git`还有一个好处,采用 `Github`的 `Insight`功能可以轻松的看出大家的贡献值()。 -![img](1.png) +![img](1.webp) ## 一些技术上的收获 diff --git a/YaeBlog/source/posts/big-homework/1.png b/YaeBlog/source/posts/big-homework/1.png deleted file mode 100644 index d062e81..0000000 --- a/YaeBlog/source/posts/big-homework/1.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2d6244372d81d16899a7536cbd98dfd31c448ada89b899cd302738e3946d7544 -size 43864 diff --git a/YaeBlog/source/posts/big-homework/1.webp b/YaeBlog/source/posts/big-homework/1.webp new file mode 100644 index 0000000..21ce881 --- /dev/null +++ b/YaeBlog/source/posts/big-homework/1.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f7b9d0cee70e8310ba9a7e0c771bea6e8eb62714fa37c4cce98bb9c7db7fc9f5 +size 19390 diff --git a/YaeBlog/source/posts/build-blog-record.md b/YaeBlog/source/posts/build-blog-record.md index 248b787..ec9ba27 100644 --- a/YaeBlog/source/posts/build-blog-record.md +++ b/YaeBlog/source/posts/build-blog-record.md @@ -1,12 +1,12 @@ --- title: 建立博客过程的记录 -typora-root-url: 建立博客过程的记录 -date: 2022-04-08 11:52:32 +date: 2022-04-08T11:52:32.0000000 tags: - - 技术笔记 +- 技术笔记 --- + 当我已经在Python的浩瀚大海遨(zheng)游(zha)了半个暑假后,我决定尝试一下传说中程序员专用的学(zhuang)习(bi)手(fangfa)段(fa)——建立自己的个人博客。作为一个半懂不懂的Python程序员,心中冒出的第一个想法自然是采用Python的Django作为开发自己的个人博客的手段。然而,在阅读了[用Django搭建个人博客](https://www.dusaiphoto.com/article/2/)等的其他人搭建这类动态博客的过程记录之后,我便义无反顾的转向了采用javascript开发的博客框架[Hexo](https://hexo.io),说好的Python信仰呢。无他,唯简单尔。 @@ -131,7 +131,7 @@ Hexo init blog ``` Hexo会以blog为名称创建一个博客文件夹,这个文件夹的内容为 -![文件夹截图](1.png) +![文件夹截图](1.webp) `node_modules`文件夹是Hexo需要用到的一些npm依赖包的存放地址,`public`文件夹下是由Hexo渲染产生的静态博客文件,`scaffolds`文件夹是博客用到的模板文件,在默认情况下应该有`draft.md`,`page.md`,`post.md`三个模板文件。`themes`是Hexo中可以使用的主题文件。主题也是Hexo一个非常方便的设计,我们可以方便使用其他人编写的Hexo Themes,让自己的博客在不同的风格之间变换。`source`文件夹就是存放我们写作的博客的地方。一般这里面会有两个子文件夹,`_draft`, `_posts`。我们在里面在创建一个`img`文件夹,把自己的头像图片和网站的图标文件都放在里面,在之后的设置的时候使用。 @@ -146,7 +146,7 @@ INFO Hexo is running at http://localhost:4000/ . Press Ctrl+C to stop. 会在本地运行Hexo自带的一台静态博客服务器。我们用浏览器访问http://localhost:4000, 就可以看见Hexo博客的初始界面 -![初始截图](2.png) +![初始截图](2.webp) 这便说明安装成功了,~~可以开香槟了~~ diff --git a/YaeBlog/source/posts/build-blog-record/1.png b/YaeBlog/source/posts/build-blog-record/1.png deleted file mode 100644 index 504bdb6..0000000 --- a/YaeBlog/source/posts/build-blog-record/1.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:43c5d93f5f893183366f51c021a5544d973ef8ff1d2ad59c05ad6dc8af6b5255 -size 45244 diff --git a/YaeBlog/source/posts/build-blog-record/1.webp b/YaeBlog/source/posts/build-blog-record/1.webp new file mode 100644 index 0000000..b72db8a --- /dev/null +++ b/YaeBlog/source/posts/build-blog-record/1.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a11c506a9360640034aa30fd9d6204d273f0fe7b707516a5269d28b79bacff81 +size 9358 diff --git a/YaeBlog/source/posts/build-blog-record/2.png b/YaeBlog/source/posts/build-blog-record/2.png deleted file mode 100644 index aa05058..0000000 --- a/YaeBlog/source/posts/build-blog-record/2.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d94c3bcc5c7838b4c12a28b96a212910101ee616dd9f581f77a33775ae29aae8 -size 494302 diff --git a/YaeBlog/source/posts/build-blog-record/2.webp b/YaeBlog/source/posts/build-blog-record/2.webp new file mode 100644 index 0000000..d5c9269 --- /dev/null +++ b/YaeBlog/source/posts/build-blog-record/2.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9dbd874b7763d86ccf67228ba263cc57d048241497ad91ed4bac50fd63f7ed34 +size 39286 diff --git a/YaeBlog/source/posts/build-dotnet-from-source.md b/YaeBlog/source/posts/build-dotnet-from-source.md index 200a665..87fd851 100644 --- a/YaeBlog/source/posts/build-dotnet-from-source.md +++ b/YaeBlog/source/posts/build-dotnet-from-source.md @@ -7,6 +7,7 @@ tags: --- + 我们编译是这样的,在本平台上编译只要敲三条命令就好了,而交叉编译要考虑的就很多了。 @@ -45,7 +46,7 @@ tags: 通常一份GNU工具链只能针对一个平台进行编译,但是LLVM工具链是一套先天的交叉编译工具链,例如对于`llc`工具,使用`llc --version`命令可以看见该编译器可以生成多种目标平台上的汇编代码: -![image-20240824120646587](./build-dotnet-from-source/image-20240824120646587.png) +![image-20240824120646587](./build-dotnet-from-source/image-20240824120646587.webp) 在使用`clang++`时加上`--target=`指定目标三元组就可以进行交叉编译。 @@ -62,7 +63,7 @@ int main() } ``` -![image-20240824121425007](./build-dotnet-from-source/image-20240824121425007.png) +![image-20240824121425007](./build-dotnet-from-source/image-20240824121425007.webp) 看样子交叉编译也不是开箱即用的。最开始我们猜想系统提供的LLVM工具链没有被配置为交叉编译,因此尝试在本地自行编译一套LLVM工具链。 @@ -81,7 +82,7 @@ cmake ../llvm-project.src/llvm \ 编译之后的成果会安装到`/usr/local/`目录下,而在`$PATH`环境变量中`/usr/local`位置将在`/usr`目录之前,因此调用时将会优先调用我们自行编译的LLVM工具链,而不是系统中安装的LLVM工具链。 -![image-20240824134158262](./build-dotnet-from-source/image-20240824134158262.png) +![image-20240824134158262](./build-dotnet-from-source/image-20240824134158262.webp) 但是使用这套编译工具链仍然会爆出和之前一样的问题。说明这并不是系统安装LLVM工具链的问题。仔细一想也确实,这里提示找不到对应的头文件应该是找不到RISC-V架构之下的头文件——这里的也是交叉编译的主要问题所在:虽然LLVM工具链宣称自己是原生支持交叉编译的,但是没人宣称说标准库和头文件是原生的。这里我们就需要一个根文件系统来提供这些头文件和各种库文件。 @@ -198,7 +199,7 @@ clang++ --target=riscv64-linux-gnu --sysroot=$ROOTFS_DIR -fuse-ld=lld hello.cpp 第一个问题的回答是Arch Linux安装的LLVM工具是可以交叉编译的。虽然在Arch Linux官方构建LLVM工具链的[构建脚本](https://gitlab.archlinux.org/archlinux/packaging/packages/clang/-/blob/main/PKGBUILD?ref_type=heads)中没有使用`LLVM_TARGETS_TO_BUILD`参数,但是这个参数的默认值是`all`。这一点我们也可以通过实验来验证。 -![image-20240824153514149](./build-dotnet-from-source/image-20240824153514149.png)于是回到编译`llvm`的目录下执行`cat install_manifest.txt | sudo xargs rm`。 +![image-20240824153514149](./build-dotnet-from-source/image-20240824153514149.webp)于是回到编译`llvm`的目录下执行`cat install_manifest.txt | sudo xargs rm`。 第二个问题的回答可以使用实验来验证,首先安装`riscv64-linux-gnu-gcc`,然后将根文件系统的位置设置为`/usr/riscv64-linux-gnu`,重新编译上面的你好世界样例。编译之后可以正常执行。 @@ -229,4 +230,4 @@ export ROOTFS_DIR= 但是现在的.NET在RISC-V平台上还是废物一个,甚至连`dotnet new`都跑不过,下一步看看能不能运行一下运行时的测试集看看。 -![image-20240824214145759](./build-dotnet-from-source/image-20240824214145759.png) +![image-20240824214145759](./build-dotnet-from-source/image-20240824214145759.webp) diff --git a/YaeBlog/source/posts/build-dotnet-from-source/image-20240824120646587.png b/YaeBlog/source/posts/build-dotnet-from-source/image-20240824120646587.png deleted file mode 100644 index a28a10c..0000000 --- a/YaeBlog/source/posts/build-dotnet-from-source/image-20240824120646587.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:df8608331d9104540c58c3710c96d95d6d569f248ec87a9a2ac13e3a05a54365 -size 189748 diff --git a/YaeBlog/source/posts/build-dotnet-from-source/image-20240824120646587.webp b/YaeBlog/source/posts/build-dotnet-from-source/image-20240824120646587.webp new file mode 100644 index 0000000..053a39b --- /dev/null +++ b/YaeBlog/source/posts/build-dotnet-from-source/image-20240824120646587.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a1255246ecef4fd56e7e8053bf83cab43c8392b2baa6a7519742dc880d6ba73 +size 80142 diff --git a/YaeBlog/source/posts/build-dotnet-from-source/image-20240824121425007.png b/YaeBlog/source/posts/build-dotnet-from-source/image-20240824121425007.png deleted file mode 100644 index 94f9a09..0000000 --- a/YaeBlog/source/posts/build-dotnet-from-source/image-20240824121425007.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:80b04aa95272ee4a22466a1168ff6dff4343cde50deb97d3a3ad4fcc7ed33793 -size 27785 diff --git a/YaeBlog/source/posts/build-dotnet-from-source/image-20240824121425007.webp b/YaeBlog/source/posts/build-dotnet-from-source/image-20240824121425007.webp new file mode 100644 index 0000000..d86de6a --- /dev/null +++ b/YaeBlog/source/posts/build-dotnet-from-source/image-20240824121425007.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4770f52360bdf2c08ca7cdaf6a27ec2e5b7ea43da160666ad85e3a15b63a629b +size 17044 diff --git a/YaeBlog/source/posts/build-dotnet-from-source/image-20240824134158262.png b/YaeBlog/source/posts/build-dotnet-from-source/image-20240824134158262.png deleted file mode 100644 index 651f00b..0000000 --- a/YaeBlog/source/posts/build-dotnet-from-source/image-20240824134158262.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8c76e238cf1aefe3033f7e6a15b41c09ee323d63397d670ef35efadb4cf010a0 -size 149831 diff --git a/YaeBlog/source/posts/build-dotnet-from-source/image-20240824134158262.webp b/YaeBlog/source/posts/build-dotnet-from-source/image-20240824134158262.webp new file mode 100644 index 0000000..e558fa7 --- /dev/null +++ b/YaeBlog/source/posts/build-dotnet-from-source/image-20240824134158262.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a96043307024619a028381259714d9fbaa3c86e858d6085c9c525de492ac4b3f +size 73898 diff --git a/YaeBlog/source/posts/build-dotnet-from-source/image-20240824153514149.png b/YaeBlog/source/posts/build-dotnet-from-source/image-20240824153514149.png deleted file mode 100644 index 4e84f2f..0000000 --- a/YaeBlog/source/posts/build-dotnet-from-source/image-20240824153514149.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0403a9fa66547b6b597ff9ce568bcc6b2c45f57f83499ab14cf1c4405dfde730 -size 30117 diff --git a/YaeBlog/source/posts/build-dotnet-from-source/image-20240824153514149.webp b/YaeBlog/source/posts/build-dotnet-from-source/image-20240824153514149.webp new file mode 100644 index 0000000..a987a1c --- /dev/null +++ b/YaeBlog/source/posts/build-dotnet-from-source/image-20240824153514149.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7bcec03c67fb5f8552a6884eed38ad4d709ea0d0be60b945030744ed809b7d6b +size 18058 diff --git a/YaeBlog/source/posts/build-dotnet-from-source/image-20240824214145759.png b/YaeBlog/source/posts/build-dotnet-from-source/image-20240824214145759.png deleted file mode 100644 index 2ca0b45..0000000 --- a/YaeBlog/source/posts/build-dotnet-from-source/image-20240824214145759.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:632da4d01c561cb4ec27e6130e3754b6ed82f6e212d6e6f2fefae1d115951419 -size 123971 diff --git a/YaeBlog/source/posts/build-dotnet-from-source/image-20240824214145759.webp b/YaeBlog/source/posts/build-dotnet-from-source/image-20240824214145759.webp new file mode 100644 index 0000000..5b6bdbc --- /dev/null +++ b/YaeBlog/source/posts/build-dotnet-from-source/image-20240824214145759.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1bf8710c2b558f1d33d6adbf294c31f82773453fcb2bcb6d7f062b8ca90c2bd1 +size 33928 diff --git a/YaeBlog/source/posts/c-include-problems.md b/YaeBlog/source/posts/c-include-problems.md index 5993d12..6839ac3 100644 --- a/YaeBlog/source/posts/c-include-problems.md +++ b/YaeBlog/source/posts/c-include-problems.md @@ -1,12 +1,12 @@ --- title: C项目中有关头文件的一些问题 +date: 2022-05-08T11:35:19.0000000 tags: - - 技术笔记 - - C/C++ -typora-root-url: c-include-problems -date: 2022-05-08 11:35:19 +- 技术笔记 +- C/C++ --- + 最近在完成一门`C`语言课程的大作业,课设老师要求我们将程序分模块的开发。在编写项目头文件的时候,遇到了一些令本菜鸡大开眼界的问题。 @@ -17,7 +17,7 @@ date: 2022-05-08 11:35:19 我项目的结构大致如图所示: -![](1.png) +![](1.webp) 在`include`的头文件目录下有两个头文件,`rail.h`和`bus.h`,这两个头文件分别定义了两个结构体`rail_node_t`和`bus_t`。 @@ -68,7 +68,7 @@ typedef struct bus bus_t; 项目的`test`文件夹下是单元测试文件夹,但是在编译的时候会报错 -![](2.png) +![](2.webp) 大意就是在一个google test内部的头文件中有几个函数找不到定义,这个函数都位于`io.h`这个头文件中。 diff --git a/YaeBlog/source/posts/c-include-problems/1.png b/YaeBlog/source/posts/c-include-problems/1.png deleted file mode 100644 index db120ad..0000000 --- a/YaeBlog/source/posts/c-include-problems/1.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:401d690fe4ac6711decb03bfa27bf35d2045960b2f7bfdbb6964fc9bb0320a50 -size 11997 diff --git a/YaeBlog/source/posts/c-include-problems/1.webp b/YaeBlog/source/posts/c-include-problems/1.webp new file mode 100644 index 0000000..59798b8 --- /dev/null +++ b/YaeBlog/source/posts/c-include-problems/1.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eebdf09480fdcf51b5d110c0f1a78649df4bae999dd8151c2a4bf49333ef7e4a +size 4450 diff --git a/YaeBlog/source/posts/c-include-problems/2.png b/YaeBlog/source/posts/c-include-problems/2.png deleted file mode 100644 index 4db5f26..0000000 --- a/YaeBlog/source/posts/c-include-problems/2.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:865e75431d84961d39bf653598807c82c09209b7236528dc91747b49fb41c361 -size 1538223 diff --git a/YaeBlog/source/posts/c-include-problems/2.webp b/YaeBlog/source/posts/c-include-problems/2.webp new file mode 100644 index 0000000..c40a685 --- /dev/null +++ b/YaeBlog/source/posts/c-include-problems/2.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:779960f8c829262183e2fdce6888b9f25dce625b60862d925d79195830a4e7b4 +size 210008 diff --git a/YaeBlog/source/posts/cncc-2024.md b/YaeBlog/source/posts/cncc-2024.md index 42d79d9..3a0e19f 100644 --- a/YaeBlog/source/posts/cncc-2024.md +++ b/YaeBlog/source/posts/cncc-2024.md @@ -5,13 +5,14 @@ tags: - 杂谈 --- + 2024年的中国计算机大会于10月24日到10月26日在浙江省金华市东阳市横店镇举办,而鄙人在下不才我,有幸受到实验室资助前去参观学习。 首先开幕式镇楼。 -![image-20241102212738598](./cncc-2024/image-20241102212738598.png) +![image-20241102212738598](./cncc-2024/image-20241102212738598.webp) ## 学术上 @@ -21,11 +22,11 @@ tags: 第一个报告是华为庞加莱实验室秦彬娟老师的《异构智算时代的操作系统演进》。报告高屋建瓴,从比较宏观的角度上介绍了当前异构融合操作系统诞生的背景、发展的方向。在报告中重点介绍了一种异构融合操作系统的设计思路:通过三层架构,基于互联池化技术,构建AI时代的融合算力系统。系统中的三层包括:(1)池化基础底层,包括多设备的融合和池化设备虚拟化;(2)异构融合核心子系统,例如异构融合调度系统、异构融合内存和异构融合存储系统;(3)异构核心服务。总的来说,这个报告在一定程度上勾勒出了未来一个异构融合操作系统应有的各项功能,但是显然这一操作系统的实现还存在着明显的困难。 -![image-20241102211959206](./cncc-2024/image-20241102211959206.png) +![image-20241102211959206](./cncc-2024/image-20241102211959206.webp) 下面一个报告是较为有干货的报告,北京航空航天大学刘瀚骋老师的《异构融合OS及多样性内存管理框架》。报告中介绍了一个称作`FMMU`的系统,是对于异构融合操作系统中内存管理系统的探索。报告中首先介绍了内存池化技术对于异构融合操作系统的重要性,指出分布式共享内存(Distributed Shared Memory)可能是实现内存池化技术的未来。然后介绍了将部分内存管理中的计算卸载到可编程网络硬件中来加速分布式内存访问的新思路。最后在报告中提到了内存管理技术如何解决错误预测和错误回复的问题。虽然在听的时候没太注意,但是现在总结的时候才发现这个报告的思路似乎有点混乱,尤其是最后一点和内存管理系统并没有什么直接的关系,而且这个内存管理系统似乎不是**异构系统**的内存管理,反而是分布式系统的内存管理。不过总的来说,这个报告还是非常实际的,介绍了不少当前异构融合操作系统中的内存管理面临的问题和解决问题的探索。 -![image-20241102212355390](./cncc-2024/image-20241102212355390.png) +![image-20241102212355390](./cncc-2024/image-20241102212355390.webp) 第三个报告是国防科技大学李东升老师的《异构计算环境下的分布式深度学习训练》。报告首先从李老师的主业——并行计算起手,介绍了深度学习训练过程中主要的各种并行方法,例如数据并行、模型并行和混合并行等,指出目前大模型的并行训练存在着计算/存储/通信难的问题。因此,提出了一个智能模型训练并行任务划分方法:(1)基于符号算子的计算图定义方法;(2)面向Transformer模型的流水线并行任务划分方法;(3)异构资源感知的流水线并行任务划分方法。然后针对分布式模型训练中通信调度存在的通信墙、数据依赖关系复杂等的问题,提出综合词嵌入表的稀疏通信调度技术、流水线并行的P2P通信调度技术、模型计算的统一操作执行引擎和网络链路感知的通信执行引擎的通信调度技术。最后提到了智能模型训练 的内存优化技术,针对现有重计算技术(re-computing)和存储交换(swapping)技术存在的问题,提出了一种面向大型智能模型训练的细粒度内存优化方法`DELTA`。 @@ -49,7 +50,7 @@ Plane讨论没有参加。 第二个报告是南京大学冯新宇老师的《基于仓颉语言的嵌入式DSL开发》,同时冯新宇老师也是仓颉语言的首席架构师。冯老师的这个报告主要聚焦于仓颉语言提供的嵌入式DSL能力,而嵌入式DSL这一设计范式已经在前端开发中展现了不俗的潜力。报告中介绍了嵌入式DSL出现的背景,仓颉中为了提供嵌入式DSL而引入的语法糖、仓颉提供的嵌入式DSL工具箱等。虽然仓颉语言是一个主要面向上层应用开发的语言,但是仓颉中丰富的DSL能力还是给异构编程模型的设计提供了不少的启发。而且目前在各种深度学习编译器中DSL的应用也非常广泛,例如`triton`。 -![image-20241102212536635](./cncc-2024/image-20241102212536635.png) +![image-20241102212536635](./cncc-2024/image-20241102212536635.webp) 第三个报告是在存算一体的芯片上做数据库的加速,第四个报告是OpenHarmony上`ArkTS`程序的静态分析,都没怎么听。 diff --git a/YaeBlog/source/posts/cncc-2024/image-20241102211959206.png b/YaeBlog/source/posts/cncc-2024/image-20241102211959206.png deleted file mode 100644 index 01a6ff9..0000000 --- a/YaeBlog/source/posts/cncc-2024/image-20241102211959206.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:76119fc2c4cd4f53679f800c41780727ef53a14bdefc594156d177cc49cb6bbb -size 2408090 diff --git a/YaeBlog/source/posts/cncc-2024/image-20241102211959206.webp b/YaeBlog/source/posts/cncc-2024/image-20241102211959206.webp new file mode 100644 index 0000000..d0fa3bb --- /dev/null +++ b/YaeBlog/source/posts/cncc-2024/image-20241102211959206.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c57e583d8087b8f42c15cc8b351d8053af6f7a5a00179b846bcdfae9f68fc3a0 +size 139100 diff --git a/YaeBlog/source/posts/cncc-2024/image-20241102212355390.png b/YaeBlog/source/posts/cncc-2024/image-20241102212355390.png deleted file mode 100644 index adc38ef..0000000 --- a/YaeBlog/source/posts/cncc-2024/image-20241102212355390.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9b30674b16f2d756eb8df19d33d2de459c194a8f1fb3bad99278adfa5c31e0dd -size 2712347 diff --git a/YaeBlog/source/posts/cncc-2024/image-20241102212355390.webp b/YaeBlog/source/posts/cncc-2024/image-20241102212355390.webp new file mode 100644 index 0000000..08402fc --- /dev/null +++ b/YaeBlog/source/posts/cncc-2024/image-20241102212355390.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4635d95dc1024cba26c8fee048df2efeb531ab2480d9179456c1919ec2d62c9a +size 243730 diff --git a/YaeBlog/source/posts/cncc-2024/image-20241102212536635.png b/YaeBlog/source/posts/cncc-2024/image-20241102212536635.png deleted file mode 100644 index 475ac3e..0000000 --- a/YaeBlog/source/posts/cncc-2024/image-20241102212536635.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:43e1c4a59ef2a75b57ce30d0ab780d2f381e74531233c648683bbd2f20136ddf -size 1544073 diff --git a/YaeBlog/source/posts/cncc-2024/image-20241102212536635.webp b/YaeBlog/source/posts/cncc-2024/image-20241102212536635.webp new file mode 100644 index 0000000..f050150 --- /dev/null +++ b/YaeBlog/source/posts/cncc-2024/image-20241102212536635.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:df0984d43f790ca38a0c42560b450fc68cd21ac5827b4238882798c21425ea31 +size 48104 diff --git a/YaeBlog/source/posts/cncc-2024/image-20241102212738598.png b/YaeBlog/source/posts/cncc-2024/image-20241102212738598.png deleted file mode 100644 index 5fda1a0..0000000 --- a/YaeBlog/source/posts/cncc-2024/image-20241102212738598.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2b03bf1455dd59785e21e88c5a106f040154f23977c968a68d5f9341e82fb5a1 -size 8559543 diff --git a/YaeBlog/source/posts/cncc-2024/image-20241102212738598.webp b/YaeBlog/source/posts/cncc-2024/image-20241102212738598.webp new file mode 100644 index 0000000..b2ca998 --- /dev/null +++ b/YaeBlog/source/posts/cncc-2024/image-20241102212738598.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:82131843f7a9c6c402015d3d7f81dc63f6671a9189d02bd60f0f668ec21b74ca +size 654436 diff --git a/YaeBlog/source/posts/compile-mediapipe.md b/YaeBlog/source/posts/compile-mediapipe.md index 56efebb..e1bb692 100644 --- a/YaeBlog/source/posts/compile-mediapipe.md +++ b/YaeBlog/source/posts/compile-mediapipe.md @@ -1,11 +1,12 @@ --- title: 编译MediaPipe框架 +date: 2022-11-11T22:20:25.0000000 tags: - - C/C++ - - 技术笔记 -date: 2022-11-11 22:20:25 +- C/C++ +- 技术笔记 --- + 编译MediaPipe框架。 @@ -198,7 +199,7 @@ bazel build -c opt --strip=ALWAYS \ 如果在编译的过程中提示缺失`dx.jar`这个文件而且你用的SDK版本还是高于31的,那可能是SDK中缺失了这个文件,可以将SDk降级到30就含有这个文件了。我使用的解决办法比较离奇,我是将30版本的SDK文件中的这个文件软链接过来,解决了这个问题。 -![](compile-mediapipe/2023-01-15-22-05-41-Screenshot_20230115_220521.png) +![](compile-mediapipe/2023-01-15-22-05-41-Screenshot_20230115_220521.webp) 编译消耗的时间可能比较的长,耐心等待即可。 @@ -227,7 +228,7 @@ bazel build -c opt //mediapipe/graphs/pose_tracking:pose_tracking_gpu_binary_gra 然后还需要从服务器上下载`tflite`文件,`Pose Tracking`这个解决方案需要两个`tflite`文件,第一个是[pose_detection.tflite](https://storage.googleapis.com/mediapipe-assets/pose_detection.tflite),第二个文件则有三个不同的选择,分别对于解决方案中提供的三个质量版本: -![](compile-mediapipe/2023-01-19-20-20-40-Screenshot_20230119_202008.png) +![](compile-mediapipe/2023-01-19-20-20-40-Screenshot_20230119_202008.webp) 下载地址是[pose_landmark_full.tflite](https://storage.googleapis.com/mediapipe-assets/pose_landmark_full.tflite),[pose_landmark_heavy.tflite](https://storage.googleapis.com/mediapipe-assets/pose_landmark_heavy.tflite)和[pose_landmark_lite.tflite](https://storage.googleapis.com/mediapipe-assets/pose_landmark_lite.tflite)。 diff --git a/YaeBlog/source/posts/compile-mediapipe/2023-01-15-22-05-41-Screenshot_20230115_220521.png b/YaeBlog/source/posts/compile-mediapipe/2023-01-15-22-05-41-Screenshot_20230115_220521.png deleted file mode 100644 index b808741..0000000 --- a/YaeBlog/source/posts/compile-mediapipe/2023-01-15-22-05-41-Screenshot_20230115_220521.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b2a53c78a0e68f31fe6a2711de630db64aa1b7d81ca637802103a45102233d99 -size 99702 diff --git a/YaeBlog/source/posts/compile-mediapipe/2023-01-15-22-05-41-Screenshot_20230115_220521.webp b/YaeBlog/source/posts/compile-mediapipe/2023-01-15-22-05-41-Screenshot_20230115_220521.webp new file mode 100644 index 0000000..aaf12b3 --- /dev/null +++ b/YaeBlog/source/posts/compile-mediapipe/2023-01-15-22-05-41-Screenshot_20230115_220521.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f5a965740f47cf499c950b32ce8f0b9acdb6a6f47210e0f31a9f723173e57b6b +size 50502 diff --git a/YaeBlog/source/posts/compile-mediapipe/2023-01-19-20-20-40-Screenshot_20230119_202008.png b/YaeBlog/source/posts/compile-mediapipe/2023-01-19-20-20-40-Screenshot_20230119_202008.png deleted file mode 100644 index 1fbd658..0000000 --- a/YaeBlog/source/posts/compile-mediapipe/2023-01-19-20-20-40-Screenshot_20230119_202008.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:15b1e6bc0d87f46937650d98703403b0536a7a61f30477418ae03a8b6361c252 -size 26745 diff --git a/YaeBlog/source/posts/compile-mediapipe/2023-01-19-20-20-40-Screenshot_20230119_202008.webp b/YaeBlog/source/posts/compile-mediapipe/2023-01-19-20-20-40-Screenshot_20230119_202008.webp new file mode 100644 index 0000000..5429353 --- /dev/null +++ b/YaeBlog/source/posts/compile-mediapipe/2023-01-19-20-20-40-Screenshot_20230119_202008.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:819ba78fcbd2115d7f85b54c2eab6f4bf7ed3990c8e5546163c8769b03321ac0 +size 7640 diff --git a/YaeBlog/source/posts/computer-architecture-pipeline.md b/YaeBlog/source/posts/computer-architecture-pipeline.md index 6228525..06176f5 100644 --- a/YaeBlog/source/posts/computer-architecture-pipeline.md +++ b/YaeBlog/source/posts/computer-architecture-pipeline.md @@ -1,20 +1,21 @@ --- title: 计算机系统结构——流水线复习 +date: 2024-06-12T20:27:25.0000000 tags: - - 计算机系统结构 - - 学习资料 -date: 2024-06-12 20:27:25 +- 计算机系统结构 +- 学习资料 --- + 让指令的各个执行阶段依次进行运行是一个简单而自然的想法,但是这种方式执行速度慢、运行效率低。因此一个很自然的想法就是将指令重叠起来运行,让执行功能部件被充分的利用起来,这就是**流水线**。 流水线的表示方法有两种。 -![image-20240612184855300](computer-architecture-pipeline/image-20240612184855300.png) +![image-20240612184855300](computer-architecture-pipeline/image-20240612184855300.webp) 第一种被称作**连接图**,清晰的表达出了流水线内部的逻辑关系。 -![image-20240612184949777](computer-architecture-pipeline/image-20240612184949777.png) +![image-20240612184949777](computer-architecture-pipeline/image-20240612184949777.webp) > 上图中给出了两个流水线中的概念:通过时间和排空时间。其中通过时间又被称作装入时间,是指第一个任务进入流水线到完成的事件;排空时间则相反,是最后一个任务通过流水线的时间。 @@ -40,7 +41,7 @@ date: 2024-06-12 20:27:25 - 静态流水线,同一时间内,多功能流水线的各段只能按照同一种功能的方式连接。 - 动态流水线,同一时间内,多功能流水线的各种可以按照不同的方式连接,执行不同的功能。 -![image-20240612190426368](computer-architecture-pipeline/image-20240612190426368.png) +![image-20240612190426368](computer-architecture-pipeline/image-20240612190426368.webp) 按照流水线中是否存在反馈回路分类: @@ -58,7 +59,7 @@ date: 2024-06-12 20:27:25 - 加速比,同一任务,不使用流水线所使用时间与使用流水线所用时间比。 - 效率,流水线设备的利用率。 -![image-20240612192700169](computer-architecture-pipeline/image-20240612192700169.png) +![image-20240612192700169](computer-architecture-pipeline/image-20240612192700169.webp) 在设计流水线的过程中存在若干问题。 @@ -68,7 +69,7 @@ date: 2024-06-12 20:27:25 一个典型的五段流水线MIPS流水线: -![image-20240612193301372](computer-architecture-pipeline/image-20240612193301372.png) +![image-20240612193301372](computer-architecture-pipeline/image-20240612193301372.webp) diff --git a/YaeBlog/source/posts/computer-architecture-pipeline/image-20240612184855300.png b/YaeBlog/source/posts/computer-architecture-pipeline/image-20240612184855300.png deleted file mode 100644 index aa9d483..0000000 --- a/YaeBlog/source/posts/computer-architecture-pipeline/image-20240612184855300.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:852fa4b226a15ff9e1f34cf13ef37426f4d6b7f37b0123150c99a76ec437c024 -size 23656 diff --git a/YaeBlog/source/posts/computer-architecture-pipeline/image-20240612184855300.webp b/YaeBlog/source/posts/computer-architecture-pipeline/image-20240612184855300.webp new file mode 100644 index 0000000..4e7975e --- /dev/null +++ b/YaeBlog/source/posts/computer-architecture-pipeline/image-20240612184855300.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:10f512f3ccd787ac8168ad92d37fdc388dd2d0a913e5f8f0a660be6f6d7fe3d0 +size 9974 diff --git a/YaeBlog/source/posts/computer-architecture-pipeline/image-20240612184949777.png b/YaeBlog/source/posts/computer-architecture-pipeline/image-20240612184949777.png deleted file mode 100644 index 8af2134..0000000 --- a/YaeBlog/source/posts/computer-architecture-pipeline/image-20240612184949777.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2ba0e36747d52eba53e756bac857f19da8c1859aba76c1819142940f6128e82a -size 75273 diff --git a/YaeBlog/source/posts/computer-architecture-pipeline/image-20240612184949777.webp b/YaeBlog/source/posts/computer-architecture-pipeline/image-20240612184949777.webp new file mode 100644 index 0000000..b3fc8fb --- /dev/null +++ b/YaeBlog/source/posts/computer-architecture-pipeline/image-20240612184949777.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5099ed84c349c7694e281f1443f377cb3ab2006b8dca93fd4a9b9fbacfaf554f +size 35682 diff --git a/YaeBlog/source/posts/computer-architecture-pipeline/image-20240612190426368.png b/YaeBlog/source/posts/computer-architecture-pipeline/image-20240612190426368.png deleted file mode 100644 index 3aa6c00..0000000 --- a/YaeBlog/source/posts/computer-architecture-pipeline/image-20240612190426368.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b8a608027cadcfd5e81468e7e52fa38430deed803e52c06fec8168ccb5bb3db5 -size 127594 diff --git a/YaeBlog/source/posts/computer-architecture-pipeline/image-20240612190426368.webp b/YaeBlog/source/posts/computer-architecture-pipeline/image-20240612190426368.webp new file mode 100644 index 0000000..5c171ad --- /dev/null +++ b/YaeBlog/source/posts/computer-architecture-pipeline/image-20240612190426368.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6b3ecec450c6c7d39fc262f2cca842f776b00a5a17fd90592fbf5d5bac9ef95b +size 102504 diff --git a/YaeBlog/source/posts/computer-architecture-pipeline/image-20240612192700169.png b/YaeBlog/source/posts/computer-architecture-pipeline/image-20240612192700169.png deleted file mode 100644 index dc9e6e7..0000000 --- a/YaeBlog/source/posts/computer-architecture-pipeline/image-20240612192700169.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0567f8196b2476e6fdcfd72c27bb1cb6cc2b444ff0f3264746d1db37eddc01af -size 46866 diff --git a/YaeBlog/source/posts/computer-architecture-pipeline/image-20240612192700169.webp b/YaeBlog/source/posts/computer-architecture-pipeline/image-20240612192700169.webp new file mode 100644 index 0000000..abf867a --- /dev/null +++ b/YaeBlog/source/posts/computer-architecture-pipeline/image-20240612192700169.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:291b80deb01bef18bebbf3e7774bd0ea9b65f8a6ba54b6d0609c7e98a45a1f45 +size 21358 diff --git a/YaeBlog/source/posts/computer-architecture-pipeline/image-20240612193301372.png b/YaeBlog/source/posts/computer-architecture-pipeline/image-20240612193301372.png deleted file mode 100644 index d49b50b..0000000 --- a/YaeBlog/source/posts/computer-architecture-pipeline/image-20240612193301372.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d1ddd98fa16315aff0d31e4989879c730bad698d82920068592ca2d7788cb296 -size 127169 diff --git a/YaeBlog/source/posts/computer-architecture-pipeline/image-20240612193301372.webp b/YaeBlog/source/posts/computer-architecture-pipeline/image-20240612193301372.webp new file mode 100644 index 0000000..a276da0 --- /dev/null +++ b/YaeBlog/source/posts/computer-architecture-pipeline/image-20240612193301372.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c57f6d1869747aed4f08714f14e3c4c5ac88c3d601e2f7e90d2c75fc7dd998b +size 86268 diff --git a/YaeBlog/source/posts/daily-linux-0.md b/YaeBlog/source/posts/daily-linux-0.md index 98f1486..1b50da4 100644 --- a/YaeBlog/source/posts/daily-linux-0.md +++ b/YaeBlog/source/posts/daily-linux-0.md @@ -1,12 +1,12 @@ --- title: 日用Linux挑战 第0篇 初见Arch Linux +date: 2023-01-15T22:23:08.0000000 tags: - - Linux - - 杂谈 -date: 2023-01-15 22:23:08 -typora-root-url: daily-linux-0 +- Linux +- 杂谈 --- + 在将开发重心移到`WSL`上一年之后,我最终还是决定完全抛弃Windows,转向使用Linux作为我日常使用的主力系统。目前,我已经使用Linux作为主力系统一个月了。 @@ -92,7 +92,7 @@ sudo systemctl enable sddm.service 我目前实现的效果大概长这样: -![](2023-01-12-13-28-38-Screenshot_20230112_132829.png) +![](2023-01-12-13-28-38-Screenshot_20230112_132829.webp) 颇有一种`Windows`和`MacOS`杂交的风格。 @@ -106,7 +106,7 @@ sudo systemctl enable sddm.service 先上一张`shell`的系统概览截图: -![](2023-01-12-13-36-45-Screenshot_20230112_133628.png) +![](2023-01-12-13-36-45-Screenshot_20230112_133628.webp) 终端模拟器直接使用的`konsole`,目前没有进行改动。 diff --git a/YaeBlog/source/posts/daily-linux-0/2023-01-12-13-28-38-Screenshot_20230112_132829.png b/YaeBlog/source/posts/daily-linux-0/2023-01-12-13-28-38-Screenshot_20230112_132829.png deleted file mode 100644 index 98b6c8e..0000000 --- a/YaeBlog/source/posts/daily-linux-0/2023-01-12-13-28-38-Screenshot_20230112_132829.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:92d829e0fd67280961dc68ed96477c788edfcf639186844ca91f35ed4ac10e74 -size 2874354 diff --git a/YaeBlog/source/posts/daily-linux-0/2023-01-12-13-28-38-Screenshot_20230112_132829.webp b/YaeBlog/source/posts/daily-linux-0/2023-01-12-13-28-38-Screenshot_20230112_132829.webp new file mode 100644 index 0000000..219d603 --- /dev/null +++ b/YaeBlog/source/posts/daily-linux-0/2023-01-12-13-28-38-Screenshot_20230112_132829.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6482d2eddccfe45c38a1fa3aa22ab7b92cba0fae89a5f7f957b039b363802e54 +size 141138 diff --git a/YaeBlog/source/posts/daily-linux-0/2023-01-12-13-36-45-Screenshot_20230112_133628.png b/YaeBlog/source/posts/daily-linux-0/2023-01-12-13-36-45-Screenshot_20230112_133628.png deleted file mode 100644 index 6a74eeb..0000000 --- a/YaeBlog/source/posts/daily-linux-0/2023-01-12-13-36-45-Screenshot_20230112_133628.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e57adb3e2bab147ce042cc51d72483ddb9842e3eda85442b0ad988d660a7012b -size 227688 diff --git a/YaeBlog/source/posts/daily-linux-0/2023-01-12-13-36-45-Screenshot_20230112_133628.webp b/YaeBlog/source/posts/daily-linux-0/2023-01-12-13-36-45-Screenshot_20230112_133628.webp new file mode 100644 index 0000000..e991e55 --- /dev/null +++ b/YaeBlog/source/posts/daily-linux-0/2023-01-12-13-36-45-Screenshot_20230112_133628.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a073ba53b1db67218108de9094841424e42dd29fe17762ebcf49b01e6dc3b9e +size 75008 diff --git a/YaeBlog/source/posts/daily-linux-2.md b/YaeBlog/source/posts/daily-linux-2.md index 3960298..501276f 100644 --- a/YaeBlog/source/posts/daily-linux-2.md +++ b/YaeBlog/source/posts/daily-linux-2.md @@ -1,13 +1,13 @@ --- title: 日用Linux挑战 第2篇 Wayland +date: 2023-07-23T11:44:34.0000000 tags: - - 杂谈 - - Linux -date: 2023-07-23 11:44:34 -typora-root-url: daily-linux-2 +- 杂谈 +- Linux --- + 使用`Linux`6个月,我成功戒掉了原神。 @@ -18,7 +18,7 @@ typora-root-url: daily-linux-2 最近恰好被平铺式的窗口管理器种草,又在B站上看见一个动画绚丽的`wayland`合成器——[Hyprland](https://hyprland.org/),当即脑袋一热,就把`kde`干掉,装上了`hyprland`。 -![img](df4211f6be2724b3b4725f7ce5a4078818844857.jpg) +![img](df4211f6be2724b3b4725f7ce5a4078818844857.avif) 安装`hyprland`的过程非常舒适,`hyprland`被打包为一个单独的二进制文件,使用`pacman`安装之后直接在`tty`下执行: @@ -46,7 +46,7 @@ Hyprland 各种在学习过程中遇到的工具软件:基本上都工作运行良好。当然因为没有设置缩放的问题而导致字体都很小。因为如果在配置文件中设置缩放之后会导致字体发虚。下面的截图就是我将我的2K显示屏设置为150%缩放的效果,~~虽然在截图中的效果不明显~~。目前在常用软件中唯一让我十分不满意的软件是`wps`,使用体验完全无法和`offices`相提并论,目前我正在研究使用`wine`运行`offices`,如果成功了就再水一篇博客庆祝一下。 -![image-20230702205919301](image-20230702205919301.png) +![image-20230702205919301](image-20230702205919301.webp) > 最新的进展是使用`wine`没法安装学校提供的`office 2021`,同时我又不愿意使用古老的`office`版本,但是我发现一个称作`onlyoffice`的第三方软件蛮好用的,等我试用一段时间再说。 > diff --git a/YaeBlog/source/posts/daily-linux-2/df4211f6be2724b3b4725f7ce5a4078818844857.jpg b/YaeBlog/source/posts/daily-linux-2/df4211f6be2724b3b4725f7ce5a4078818844857.avif similarity index 100% rename from YaeBlog/source/posts/daily-linux-2/df4211f6be2724b3b4725f7ce5a4078818844857.jpg rename to YaeBlog/source/posts/daily-linux-2/df4211f6be2724b3b4725f7ce5a4078818844857.avif diff --git a/YaeBlog/source/posts/daily-linux-2/image-20230702205919301.png b/YaeBlog/source/posts/daily-linux-2/image-20230702205919301.png deleted file mode 100644 index 0344fa1..0000000 --- a/YaeBlog/source/posts/daily-linux-2/image-20230702205919301.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:48a0c7ae799eca73de2ed8ed889b7ca6efd4891174ea746ee12bb97c4a2d444f -size 464377 diff --git a/YaeBlog/source/posts/daily-linux-2/image-20230702205919301.webp b/YaeBlog/source/posts/daily-linux-2/image-20230702205919301.webp new file mode 100644 index 0000000..4426c73 --- /dev/null +++ b/YaeBlog/source/posts/daily-linux-2/image-20230702205919301.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec9b887868bff77ddd78f214b9dbd57a043e0cfa72ff6d9016df6b98a0620d82 +size 54620 diff --git a/YaeBlog/source/posts/daily-linux-3.md b/YaeBlog/source/posts/daily-linux-3.md index ae507a4..3d8117c 100644 --- a/YaeBlog/source/posts/daily-linux-3.md +++ b/YaeBlog/source/posts/daily-linux-3.md @@ -1,13 +1,13 @@ --- title: 日用Linux挑战 第3篇 放弃Wayland +date: 2023-09-04T14:47:46.0000000 tags: - - 杂谈 - - Linux -typora-root-url: daily-linux-3 -date: 2023-09-04 14:47:46 +- 杂谈 +- Linux --- + 成也开源,败也开源。 @@ -53,7 +53,7 @@ date: 2023-09-04 14:47:46 - `Meta+F`全屏应用 - `Meta+W`关闭应用 -![](Screenshot_20230904_144149.png) +![](Screenshot_20230904_144149.webp) ### Fuck You NVIDIA diff --git a/YaeBlog/source/posts/daily-linux-3/Screenshot_20230904_144149.png b/YaeBlog/source/posts/daily-linux-3/Screenshot_20230904_144149.png deleted file mode 100644 index 3798ab2..0000000 --- a/YaeBlog/source/posts/daily-linux-3/Screenshot_20230904_144149.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0cd5c1c81e8faa1acdfeb3a3fbf65116970ee79fb811c08b23fcf91b1570d64d -size 3049270 diff --git a/YaeBlog/source/posts/daily-linux-3/Screenshot_20230904_144149.webp b/YaeBlog/source/posts/daily-linux-3/Screenshot_20230904_144149.webp new file mode 100644 index 0000000..eb11f2f --- /dev/null +++ b/YaeBlog/source/posts/daily-linux-3/Screenshot_20230904_144149.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f9c45c7a0eb055513f7bb2804793cac662033d6d3a49e0244b45df730145df0b +size 158686 diff --git a/YaeBlog/source/posts/daily-linux-4.md b/YaeBlog/source/posts/daily-linux-4.md index 82b364d..ec61f7d 100644 --- a/YaeBlog/source/posts/daily-linux-4.md +++ b/YaeBlog/source/posts/daily-linux-4.md @@ -1,11 +1,12 @@ --- title: 日用Linux挑战 第4篇 新的开始 +date: 2024-03-09T14:00:00.0000000 tags: - - Linux - - 杂谈 -date: 2024/03/09 14:00:00 +- Linux +- 杂谈 --- + 小步快跑,面向未来。 @@ -18,7 +19,7 @@ date: 2024/03/09 14:00:00 相较于古老但是稳定的`Ext4`文件系统,`Btrfs`对我来说最大的好处便是可以零成本的创建快照,便于在出现错误的时候及时回滚或者直接重装系统。因此,为了方便快照的生成和回滚,我在安装系统时使用**扁平化**的子分区划分方法:即尽力避免出现嵌套的子分区,所有需要快照的分区都处在`/`目录之下: -![Screenshot_20240309_115143](daily-linux-4/Screenshot_20240309_115143.png) +![Screenshot_20240309_115143](daily-linux-4/Screenshot_20240309_115143.webp) - `@`为根分区,挂载在`/`目录之下,打开写时复制; - `@home`为家目录分区,挂载在`/home`目录之下,打开写时复制; @@ -44,7 +45,7 @@ sudo btrfs send /.snapshots/home@20240225 | zstd | ssh root@remote "zstd -d | bt 算起来,我已经和`Wayland`显示协议相爱相杀了整整一年了,从`KDE plasma X`到`Hyprland`,再尝试小众的`labwc`,最后回到了`KDE plasma X`。而在2024年2月29日`KDE plasma`释出6.0版本,将`Wayland`作为默认的显示协议,我也在第一时间更新了版本并使用`wayland`显示协议。现在,我可以比较确定的说,`Wayland`目前已经达到可用的水平了,而且我还是使用`RTX 3060`显卡。 -![image-20240309130329784](daily-linux-4/image-20240309130329784.png) +![image-20240309130329784](daily-linux-4/image-20240309130329784.webp) 不过相较于`AMDGPU`可以开箱即用,使用`NVIDIA`启动需要配置如下的模块参数: @@ -64,7 +65,7 @@ options nvidia_drm modeset=1 fbdev=1 不过`XWayland`应用程序在使用`NVIDIA`驱动时会存在一个神奇的**同步失败**问题,表现为在`xwayland`中部分控件闪烁,交替显示更新前和更新后的帧,而且这个问题几乎不能被截屏抓到,具体可以见`freedesktop`上的这个[issue](https://gitlab.freedesktop.org/xorg/xserver/-/issues/1317)。虽然这个议题下面有着很长的讨论,还是建议大家完整的看一遍,里面甚至还有: -![image-20240309131750535](daily-linux-4/image-20240309131750535.png) +![image-20240309131750535](daily-linux-4/image-20240309131750535.webp) 省流:这个议题讨论了在`xserver`中提供显式同步的协议原语,方便图形驱动程序知道什么时候渲染的帧发生了变化。因此这并不是一个`NVIDIA`驱动程序的问题,而是需要将`Linux`显示协议栈从隐式同步迁移到显式同步。但是相关的工作还在开发过程中,因此解决方法有两个: @@ -77,9 +78,9 @@ options nvidia_drm modeset=1 fbdev=1 于是,我就在`Arch Wiki`上学到一条新知识: -![image-20240309134847166](daily-linux-4/image-20240309134847166.png) +![image-20240309134847166](daily-linux-4/image-20240309134847166.webp) 原来`efi`分区其实只用放`grub`,,, -![img](daily-linux-4/cfd17cff0701a8e8c69fecf247f17fc1-1709963611271-2.jpg) +![img](daily-linux-4/cfd17cff0701a8e8c69fecf247f17fc1-1709963611271-2.webp) diff --git a/YaeBlog/source/posts/daily-linux-4/Screenshot_20240309_115143.png b/YaeBlog/source/posts/daily-linux-4/Screenshot_20240309_115143.png deleted file mode 100644 index f2d5911..0000000 --- a/YaeBlog/source/posts/daily-linux-4/Screenshot_20240309_115143.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:56cb495f0a6f57c1b72eef008faa2b4ef9f572c2c2c2a8c6962cf6df5787fae7 -size 79552 diff --git a/YaeBlog/source/posts/daily-linux-4/Screenshot_20240309_115143.webp b/YaeBlog/source/posts/daily-linux-4/Screenshot_20240309_115143.webp new file mode 100644 index 0000000..b4250bd --- /dev/null +++ b/YaeBlog/source/posts/daily-linux-4/Screenshot_20240309_115143.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61a07177866e25ab9b2b7b3d1eb260e1fbac17c9b1be428966d1a9fece5efe04 +size 13498 diff --git a/YaeBlog/source/posts/daily-linux-4/cfd17cff0701a8e8c69fecf247f17fc1-1709963611271-2.jpg b/YaeBlog/source/posts/daily-linux-4/cfd17cff0701a8e8c69fecf247f17fc1-1709963611271-2.jpg deleted file mode 100644 index 0217928..0000000 --- a/YaeBlog/source/posts/daily-linux-4/cfd17cff0701a8e8c69fecf247f17fc1-1709963611271-2.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9195301a60278833cb62f6971a1cee5ac0a2aa0bc31770b79fe3c08872ac1ae6 -size 574570 diff --git a/YaeBlog/source/posts/daily-linux-4/cfd17cff0701a8e8c69fecf247f17fc1-1709963611271-2.webp b/YaeBlog/source/posts/daily-linux-4/cfd17cff0701a8e8c69fecf247f17fc1-1709963611271-2.webp new file mode 100644 index 0000000..d55647c --- /dev/null +++ b/YaeBlog/source/posts/daily-linux-4/cfd17cff0701a8e8c69fecf247f17fc1-1709963611271-2.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4eae5bfda7882b8389e9a4dc1eae23468bb4d42270338913f0bd292245207f07 +size 201904 diff --git a/YaeBlog/source/posts/daily-linux-4/image-20240309130329784.png b/YaeBlog/source/posts/daily-linux-4/image-20240309130329784.png deleted file mode 100644 index c2f9d16..0000000 --- a/YaeBlog/source/posts/daily-linux-4/image-20240309130329784.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:381b47a8cb243352ad1a9f57fab45f49cc1b8bd450aeeab4ed1a699359953669 -size 395168 diff --git a/YaeBlog/source/posts/daily-linux-4/image-20240309130329784.webp b/YaeBlog/source/posts/daily-linux-4/image-20240309130329784.webp new file mode 100644 index 0000000..255d4de --- /dev/null +++ b/YaeBlog/source/posts/daily-linux-4/image-20240309130329784.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1b77fb0a670449e075dbedb15f48ca15a3af970ec78aa2044260b08cebb45af3 +size 106782 diff --git a/YaeBlog/source/posts/daily-linux-4/image-20240309131750535.png b/YaeBlog/source/posts/daily-linux-4/image-20240309131750535.png deleted file mode 100644 index 85658f3..0000000 --- a/YaeBlog/source/posts/daily-linux-4/image-20240309131750535.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:938adf2b3037b870c6291878d9470a2b275f642e8a9fff739b23fada33a27f97 -size 157597 diff --git a/YaeBlog/source/posts/daily-linux-4/image-20240309131750535.webp b/YaeBlog/source/posts/daily-linux-4/image-20240309131750535.webp new file mode 100644 index 0000000..a88aef4 --- /dev/null +++ b/YaeBlog/source/posts/daily-linux-4/image-20240309131750535.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:66d2533db6f4f7ff214c3d8fa35da1a427609caa5cf72a1594d0ca3aab7db2f5 +size 61926 diff --git a/YaeBlog/source/posts/daily-linux-4/image-20240309134847166.png b/YaeBlog/source/posts/daily-linux-4/image-20240309134847166.png deleted file mode 100644 index e61c30a..0000000 --- a/YaeBlog/source/posts/daily-linux-4/image-20240309134847166.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2e76a2dd3c1fa0382410c0e980d42e0c27ed3a0e198036b4b5d65ee69122266c -size 38275 diff --git a/YaeBlog/source/posts/daily-linux-4/image-20240309134847166.webp b/YaeBlog/source/posts/daily-linux-4/image-20240309134847166.webp new file mode 100644 index 0000000..32b174d --- /dev/null +++ b/YaeBlog/source/posts/daily-linux-4/image-20240309134847166.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d02f73b1307040111112191abc11959e0725c979dc0e0768233a8c9df63896b1 +size 20340 diff --git a/YaeBlog/source/posts/dotnet-performance-8.md b/YaeBlog/source/posts/dotnet-performance-8.md index e2af79d..2657e90 100644 --- a/YaeBlog/source/posts/dotnet-performance-8.md +++ b/YaeBlog/source/posts/dotnet-performance-8.md @@ -7,6 +7,7 @@ tags: - 编译原理 --- + JIT编译就一定比AOT编译慢吗? @@ -104,7 +105,7 @@ class Program 首先是为了更好发挥动态PGO的性能,JIT编译器中为分层编译引入了更多的编译层数。需要引入更多编译层数的原因主要有两点。第一,插入各种采样的指令和代码是需要代价的,考虑到第0层编译的主要目标是为了降低编译的时间,提高应用的启动速度,在第0层编译过程中就不能插入太多的采样指令。因此编译器首先增加了一个新的编译层——采样第0层来解决这个问题。大部分的方法将在第一次运行时编译到缺少优化、缺少采样指令的第0层,在运行时发现该方法被调用了多次之后,JIT编译器将这个方法重新编译到采样第0层,再经过一系列的调用之后,JIT编译器将利用采样得到的信息对该方法重新进行编译并优化。第二,在原始编译器模型中使用即时运行(R2R)方法编译的代码不能参加到动态PGO中,尤其是考虑到几乎所有应用程序都会调用的核心库代码是采用R2R的方式进行运行的,如果这部分的代码不能参加动态PGO将不能够完全发挥动态PGO的效果,虽然核心库在提前编译的过程中会使用静态PGO进行一部分的优化。因此JIT编译器为R2R编译好的代码增加了一个新的编译器,在运行时发现这部分代码被调用多次之后将会被JIT编译器编译到含有优化和采样代码的采样第1层,随着调用次数的增加这部分的代码将可以利用采样得到的信息进行优化。下面这张图展现了不同编译方法在运行过程中可能达到的编译层级。 -![image-20240828135354598](./dotnet-performance-8/image-20240828135354598.png) +![image-20240828135354598](./dotnet-performance-8/image-20240828135354598.webp) JIT编译器也在第0层编译的过程中引入了更多的优化。虽然第0层编译的目的是缩短编译的时间,但是许多的优化可以通过减少需要生成的代码数量来达到这个目的。常量折叠(Constant Folding)就是一个很好的例子。虽然这会让JIT编译器在第0层编译时花费更多的时间同运行时中的虚拟机交互来解析各种变量的类型,但是这可以大量的减少JIT编译器需要生成的代码量,尤其是对于下面这种涉及到类型判断的例子。 @@ -257,7 +258,7 @@ for (int trial = 0; trial < 5; trial++) 程序的输出是5次次采样统计的结果: -![image-20240828155556375](./dotnet-performance-8/image-20240828155556375.png) +![image-20240828155556375](./dotnet-performance-8/image-20240828155556375.webp) 需要指出的是,虽然在上面的代码中使用和运行时代码中一样的“蓄水池”大小,但是在运行时并没有提前获得所有需要统计的数据,调用的统计数据是由多个不同的运行线程同时写入蓄水池中的。从结果中可以看出,虽然数值上并不准确,但是该算法准确的统计出了各个字符的出现趋势。 @@ -532,7 +533,7 @@ public class Tests 为了优化这种生成周期和程序一致对象的内存管理,.NET 8中引入了一个新的堆——没有内存管理的堆。JIT编译器将会保证这些常量类型的对象将会被分配在这个堆中,这种没有GC管理的堆也意味着JIT编译器可以为这些对象使用一个固定的内存地址,在使用时避免掉了一次内存读取。 -![Heaps where .NET Objects Live](./dotnet-performance-8/HeapsWhereNetObjectsLive.png) +![Heaps where .NET Objects Live](./dotnet-performance-8/HeapsWhereNetObjectsLive.webp) 将上述提高的示例代码使用.NET 8版本进行编译得到的代码如下,从中也可以看出JIT编译器生成的代码只有一条`mov`指令,避免了一次内存访问。 diff --git a/YaeBlog/source/posts/dotnet-performance-8/HeapsWhereNetObjectsLive.png b/YaeBlog/source/posts/dotnet-performance-8/HeapsWhereNetObjectsLive.png deleted file mode 100644 index f313abe..0000000 --- a/YaeBlog/source/posts/dotnet-performance-8/HeapsWhereNetObjectsLive.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:51d6acd5b3bb8134b3a56602328f948e391679492753934d7514a2ff10851d25 -size 21885 diff --git a/YaeBlog/source/posts/dotnet-performance-8/HeapsWhereNetObjectsLive.webp b/YaeBlog/source/posts/dotnet-performance-8/HeapsWhereNetObjectsLive.webp new file mode 100644 index 0000000..87f2d5e --- /dev/null +++ b/YaeBlog/source/posts/dotnet-performance-8/HeapsWhereNetObjectsLive.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c06db81eb612adf2c9110087a1f4ff121ac5fdb1bfaabb1aad22615e63a8505 +size 19238 diff --git a/YaeBlog/source/posts/dotnet-performance-8/image-20240828135354598.png b/YaeBlog/source/posts/dotnet-performance-8/image-20240828135354598.png deleted file mode 100644 index aa123bb..0000000 --- a/YaeBlog/source/posts/dotnet-performance-8/image-20240828135354598.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6274b29f3b6dd75841ad0c36f2595403f9f326f2c90ed5ef062a3366a4f3fd9c -size 62003 diff --git a/YaeBlog/source/posts/dotnet-performance-8/image-20240828135354598.webp b/YaeBlog/source/posts/dotnet-performance-8/image-20240828135354598.webp new file mode 100644 index 0000000..24c61ad --- /dev/null +++ b/YaeBlog/source/posts/dotnet-performance-8/image-20240828135354598.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e250fddca641dd8afcd3065cf90d74bb2f69d5ea15797dfdbde12b2cd7b506a +size 17798 diff --git a/YaeBlog/source/posts/dotnet-performance-8/image-20240828155556375.png b/YaeBlog/source/posts/dotnet-performance-8/image-20240828155556375.png deleted file mode 100644 index 763322f..0000000 --- a/YaeBlog/source/posts/dotnet-performance-8/image-20240828155556375.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f38ca49381035d50cea7549223f5b2b2f4ea27eebb286920b67b6f3784a8982b -size 38001 diff --git a/YaeBlog/source/posts/dotnet-performance-8/image-20240828155556375.webp b/YaeBlog/source/posts/dotnet-performance-8/image-20240828155556375.webp new file mode 100644 index 0000000..ba912fe --- /dev/null +++ b/YaeBlog/source/posts/dotnet-performance-8/image-20240828155556375.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d39a580333d9f7d214f9cc9c38d4b2b70bbec4267edfddb342f0e711c409888d +size 9904 diff --git a/YaeBlog/source/posts/environment-setting.md b/YaeBlog/source/posts/environment-setting.md index 704c465..5130383 100644 --- a/YaeBlog/source/posts/environment-setting.md +++ b/YaeBlog/source/posts/environment-setting.md @@ -1,11 +1,11 @@ --- title: 环境配置备忘录 -date: 2022-01-15 20:19:39 +date: 2022-01-15T20:19:39.0000000 tags: - - 技术笔记 -typora-root-url: 环境配置 +- 技术笔记 --- + 电脑上的环境三天两头出问题,写下一个备忘录记录一下电脑上环境的配置过程。 @@ -236,7 +236,7 @@ Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser 再重新运行配置文件就没有问题了。 -![终端预览](6.png) +![终端预览](6.webp) ### PowerShell配置文件 diff --git a/YaeBlog/source/posts/environment-setting/6.png b/YaeBlog/source/posts/environment-setting/6.png deleted file mode 100644 index b422cff..0000000 --- a/YaeBlog/source/posts/environment-setting/6.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d4611461d3ae3af16c71f30bed786cd52928889d13e94cbd6e289676c201a352 -size 2794913 diff --git a/YaeBlog/source/posts/environment-setting/6.webp b/YaeBlog/source/posts/environment-setting/6.webp new file mode 100644 index 0000000..d6f95ee --- /dev/null +++ b/YaeBlog/source/posts/environment-setting/6.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c46691ac920565f3dfc282600f84a39af616e04d87c3b1ba8a2e2aa2b77b9b4d +size 76532 diff --git a/YaeBlog/source/posts/genshin-gacha-1.md b/YaeBlog/source/posts/genshin-gacha-1.md index 5b033de..ea8c77f 100644 --- a/YaeBlog/source/posts/genshin-gacha-1.md +++ b/YaeBlog/source/posts/genshin-gacha-1.md @@ -1,11 +1,12 @@ --- title: 原神抽卡研究一 +date: 2022-12-31T13:38:19.0000000 tags: - - 原神 - - 学习资料 -date: 2022-12-31 13:38:19 +- 原神 +- 学习资料 --- + 实际上是“概率论和随机过程”课程的期末小论文。 @@ -14,7 +15,7 @@ date: 2022-12-31 13:38:19 目前在市面上出现了大量以抽奖为核心盈利手段的电子游戏,在这种游戏中,获取游戏中的物品不是明码标价的购买,而是通过参加某种抽奖性质的活动。玩家花费一定金额购买参加活动的机会,每次参加都有一定的概率获得玩家想要获得的物品。在抽奖活动中,游戏设计者还会引入一种被称为 “保底” 的游戏机制:开发者向玩家群体承诺在一定的参加次数之后必然会获得到该物品。例如下面是热门游戏《原神》中获取游戏中角色 “抽奖” 活动的概率公示页面。 -![](./genshin-gacha-1/2022-12-31-13-06-36-image.png) +![](./genshin-gacha-1/2022-12-31-13-06-36-image.webp) 在这个 “抽奖” 活动中,玩家可以得到三种等级的物品,在游戏中分别称为 “五星物品”、“四星物品” 和 “三星物品”。在每次的 “抽奖” 活动中,玩家必定会获得上述三种物品中的一种。为了简化问题的讨论,我们现不区分相同等级不同物品之间的不同,只考虑不同星级物品的获取概率。通过概率公示可以知道:五星物品的 “基础概率” 为0.600%,四星物品的 “基础概率” 为 5.100%;五星物品的 “综合概率” 为 1.600%,四星物品的 “综合概率” 为 13.000%。从一个玩家的角度出发,自然会存在两个问题: @@ -50,11 +51,11 @@ date: 2022-12-31 13:38:19 在总共 4842256 次抽卡记录中,获得五星物品的次数为 78493 次,于是: -![](genshin-gacha-1/2022-12-31-15-59-20-image.png) +![](genshin-gacha-1/2022-12-31-15-59-20-image.webp) 再计算一下每次参加该活动获得四星物品的平均概率:在总共 5000139 次抽卡中,获得四星物品的次数为 653200: -![](genshin-gacha-1/2022-12-31-15-59-42-image.png) +![](genshin-gacha-1/2022-12-31-15-59-42-image.webp) 不难发现,在误差允许的范围内,计算出来的平均概率和游戏开发者所公布的 “综合概率” 是相同的。当参与这个游戏足够多次时,获取到五星物品和四星物品的数量就可以用这个概率来估计。 @@ -62,15 +63,15 @@ date: 2022-12-31 13:38:19 为了方便讨论,再次将这个 “游戏” 简化为获得五星物品和不获得五星物品两种情况。那么这个 “抽奖” 游戏是否就能被简化为一个概率为 1.6% 的 n 次伯努利实验?不妨假设每次获得五星物品之间相互独立,这样每次获得五星物品都可以认为是首次获得五星物品,这时参加该游戏的次数就会符合概率为 1.6% 的几何分布,而为了符合保底规则,当玩家在参与到第 90 次时仍未获得五星物品,强制给予玩家一个五星的物品。画出实际数据中得到的图像和按照几何分布得到的图像。 -![](genshin-gacha-1/2022-12-31-13-20-46-image.png) +![](genshin-gacha-1/2022-12-31-13-20-46-image.webp) -![](genshin-gacha-1/2022-12-31-13-21-11-image.png) +![](genshin-gacha-1/2022-12-31-13-21-11-image.webp) 不难发现假设的猜想和实际情况不相符合。在抽数小于 73 抽时,获得五星物品的概率逐渐降低,从 0.6% 左右一直降低至 0.4% 左右。当抽数大于等于 73 抽时,抽到的概率开始上升,在抽数等于 77 抽时达到最大,大约为 10.4%。随后概率开始下降,在第 91 抽时,概率等于 0。 如果在实际得到的概率关于抽数的图上再作出概率为 0.6% 的几何分布的图像,前73 抽的概率图像和几何分布的图像几乎吻合。也就是说,该抽奖游戏的前 73 抽就是一个符合 P = 0.6% 的几何分布,从第 73 抽开始 “保底” 机制的修正。这就是游戏开发者口中 “基础概率” 的含义:在该抽奖游戏的前数十抽就是一个概率为 0.6% 的伯努利实验。 -![](genshin-gacha-1/2022-12-31-13-24-26-image.png) +![](genshin-gacha-1/2022-12-31-13-24-26-image.webp) 从大量的实际数据出发,不难发现游戏开发者的申明同实际情况相吻合。 @@ -80,7 +81,7 @@ date: 2022-12-31 13:38:19 直到作者开始写作本文之前,作者都没有意识到本文 3.2 节中的所有结论几乎都基于该假设。限于文章的篇幅原因和个人的能力问题,在本文中未对这个假设作出验证。下面给出一种验证该猜想的方法。为验证获得五星物品之间相互独立,可以通过统计方法验证下面的等式成立。 -![](genshin-gacha-1/2022-12-31-16-00-10-image.png) +![](genshin-gacha-1/2022-12-31-16-00-10-image.webp) ### 展望 diff --git a/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-13-06-36-image.png b/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-13-06-36-image.png deleted file mode 100644 index 0903b38..0000000 --- a/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-13-06-36-image.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2ed01520f4d7e6bde13d6afbe12e8739506bde28d4ae8658c757296e8f435c29 -size 111575 diff --git a/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-13-06-36-image.webp b/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-13-06-36-image.webp new file mode 100644 index 0000000..dedf95f --- /dev/null +++ b/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-13-06-36-image.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e66d8f534067205e66b62036ce7b1e79e82bf3ac2e87f85cc3c45eb54620ca9 +size 61390 diff --git a/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-13-20-46-image.png b/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-13-20-46-image.png deleted file mode 100644 index bd4c2f9..0000000 --- a/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-13-20-46-image.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:099b6ce419578d9016c7d9644bb6aef0fe3ad73f4402a29c3bf6feaca2914b3a -size 46251 diff --git a/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-13-20-46-image.webp b/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-13-20-46-image.webp new file mode 100644 index 0000000..0b74140 --- /dev/null +++ b/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-13-20-46-image.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:827e460e1fb07ad40f7225c26e887b5dd7c107b18651a8150693a3a221c8544b +size 22780 diff --git a/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-13-21-11-image.png b/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-13-21-11-image.png deleted file mode 100644 index 463aac2..0000000 --- a/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-13-21-11-image.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c8ec4f1a2c6c0184c86d8cce52e51e06f376f228c14307eac1e41c4ed6e58ed6 -size 37762 diff --git a/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-13-21-11-image.webp b/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-13-21-11-image.webp new file mode 100644 index 0000000..2bc2a1d --- /dev/null +++ b/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-13-21-11-image.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6f484ca74739d3ae8724a7905d0c3ea353ad4a83e6a8ffb92dced9d37fab3c03 +size 19342 diff --git a/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-13-24-26-image.png b/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-13-24-26-image.png deleted file mode 100644 index 6ccee36..0000000 --- a/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-13-24-26-image.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b4aa0365c268a0104d81cc4f0273254d3568f7dd48b05aefc51f7496f81c8512 -size 46392 diff --git a/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-13-24-26-image.webp b/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-13-24-26-image.webp new file mode 100644 index 0000000..bdd8dc6 --- /dev/null +++ b/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-13-24-26-image.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78e2153061ee743bfdf651d33fd8c1587238aa4a5f827c9c8e471fae278e79ad +size 26180 diff --git a/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-15-59-20-image.png b/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-15-59-20-image.png deleted file mode 100644 index b6ddba3..0000000 --- a/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-15-59-20-image.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:662bfafbae8857dc9a1349c6bf51b8b122a93ebd181ed50e0e4413204f1dc0d0 -size 10280 diff --git a/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-15-59-20-image.webp b/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-15-59-20-image.webp new file mode 100644 index 0000000..879b8ba --- /dev/null +++ b/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-15-59-20-image.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b416dcbb9b458e9e1594de9aac004145e33af82a679f802301659be7af19564a +size 7328 diff --git a/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-15-59-42-image.png b/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-15-59-42-image.png deleted file mode 100644 index e74abec..0000000 --- a/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-15-59-42-image.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b9cae7637db04d556cded06019bab4454284b6a2c122382c865573ccd08df175 -size 10578 diff --git a/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-15-59-42-image.webp b/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-15-59-42-image.webp new file mode 100644 index 0000000..b45503c --- /dev/null +++ b/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-15-59-42-image.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0c1a3c34ee5b7309dc2c638e540f4e933d6354aeb4b47d9f7099bfae41768df7 +size 6974 diff --git a/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-16-00-10-image.png b/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-16-00-10-image.png deleted file mode 100644 index c5146bf..0000000 --- a/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-16-00-10-image.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5fe30a67495ed6c97cafd4dcfd4432709f871bb86738596ca6a738ea5b4744fe -size 18066 diff --git a/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-16-00-10-image.webp b/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-16-00-10-image.webp new file mode 100644 index 0000000..3547a77 --- /dev/null +++ b/YaeBlog/source/posts/genshin-gacha-1/2022-12-31-16-00-10-image.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3b9987a736145d91614f59dac655fc9eacd390cabfb2c4cdc684c6f1cce36af +size 10434 diff --git a/YaeBlog/source/posts/heterogeneous-programming-model.md b/YaeBlog/source/posts/heterogeneous-programming-model.md index 7e5a702..5b9511a 100644 --- a/YaeBlog/source/posts/heterogeneous-programming-model.md +++ b/YaeBlog/source/posts/heterogeneous-programming-model.md @@ -7,6 +7,7 @@ tags: --- + 随着摩尔定律的逐渐失效,将CPU和其他架构的计算设备集成在片上或者通过高速总线互联构建的异构系统成为了高性能计算的主流。但是在这种系统中,上层应用的设计与实现面临着异构系统中各个设备之间体系结构差异过大、缺乏良好的异构抽象以及统一的编程接口和应用程序的优化难度大等困难。 异构并行编程模型便是解决这些编程和执行效率问题的解决方案。 @@ -25,11 +26,11 @@ tags: 首先是异构系统中各个设备之间的并行计算能力不同。在同构的并行计算系统中,比如多核CPU中,虽然同一CPU的不同核之间、同一核的不同SIMD部件之间可以承担不同粒度的并行计算任务,但是其并行计算的能力是完全相同的。但是在一个典型的异构计算系统,例如CPU、GPU和FPGA组成的异构系统,不同设备的微架构具有本质差异,其并行计算的模式和能力都完全不同,设备之间的特长也完全不同。这种设备之间并行计算能力的差异使得系统中的任务划分和任务映射不再是均一的,而是具有显著的特异性。这种特点虽然也有利于表达实际应用的特点,但是却给异构并行计算模型的设计带来了巨大的困难。 -![9eb06d8be92ddef3db33e040163c67a7.png](./heterogeneous-programming-model/9eb06d8be92ddef3db33e040163c67a7.png) +![9eb06d8be92ddef3db33e040163c67a7.webp](./heterogeneous-programming-model/9eb06d8be92ddef3db33e040163c67a7.webp) 其次是异构系统中加速设备数据分布可配置、设备间数据通信渠道多样性给数据分布和通信带来的困难。在同构并行系统中,CPU片内的存储是对于软件透明的缓存架构,在片外则是一个共享内存模型,因此在这类系统中,数据仅可能分布在片外的共享存储中,具有存储位置单一的特点,也不需要进行显式的通信操作。但是在异构系统中,不仅在单个加速设备内部可能有软件可分配的快速局部存储,设备之间的连接方式差异也很大。目前,大多个加速设备都是通过PCIe总线的方式同CPU进行连接,这使得加速设备无法通过和CPU相同的方式完成地址映射,存在某一设备无法访问另一设备片外存储的问题。这使得异构系统中数据可以分布在CPU、加速设备的片外存储和加速设备的片内多层次局部存储等多个位置,不仅使得编程模型的数据分布问题变得十分复杂,设备间的通信文件也可能需要显式进行。 -![eab553f9e30d8d866a1ddd201b5e4c85.png](./heterogeneous-programming-model/eab553f9e30d8d866a1ddd201b5e4c85.png) +![eab553f9e30d8d866a1ddd201b5e4c85.webp](./heterogeneous-programming-model/eab553f9e30d8d866a1ddd201b5e4c85.webp) 最后是异构系统中多层次数据共享和多范围同步操作带来的同步困难问题。这也可以认为是上个数据同步问题带来的后继问题:在异构系统中数据可能分布在不同位置的条件下,同步操作需要在众多的位置上保证共享数据的一致性,这使得同步操作的范围变得十分复杂。同时,在一些特定的加速设备中,例如GPU,可能还会有局部的硬件同步机制,这更加提高了在异构系统的同步操作的设计和实现难度。 @@ -47,7 +48,7 @@ tags: 从异构并行编程接口的功能角度上来说也可以分成两类:有些接口屏蔽了较多的异构并行编程细节,通常仅给程序员提供显式异构任务划分的机制,而数据分布和通信、同步等的工作由运行时系统负责完成,也有些接口将多数异构系统的硬件细节通过上述机制暴露给程序员使用,这在给编程带来更大自由度的同时带来了使用上的困难。 -![83ee1d254d638536d0fb4197ff63e758.png](./heterogeneous-programming-model/83ee1d254d638536d0fb4197ff63e758.png) +![83ee1d254d638536d0fb4197ff63e758.webp](./heterogeneous-programming-model/83ee1d254d638536d0fb4197ff63e758.webp) ### 异构任务划分机制研究 @@ -125,7 +126,7 @@ public class Result 采用显示异步数据分布和通信机制的主要问题是普通程序员一般无法充分利用这些接口获得性能上的提升。这通常使用因为加速设备通常采用了大量的硬件加速机制,例如GPU的全局内存访存合并机制,这使得程序员如果没有为数据分配合理的存储位置或者设定足够多的线程,会使得加速的效果大打折扣。因此出现了针对这类显式控制语言的优化方法,例如`CUDA-lite`,这个运行时允许程序元在CUDA程序中加入简单的制导语句,数据分布的相关工作使用`CUDA-lite`的运行时系统完成,降低了CUDA程序的编写难度。 -![628804b3fe95d39013ff55ae84516d14.png](./heterogeneous-programming-model/Screenshot_20241016_214139.png) +![628804b3fe95d39013ff55ae84516d14.png](./heterogeneous-programming-model/Screenshot_20241016_214139.webp) 总结一下,为了解决异构系统带来的问题,异构并行编程接口具有如下三个特点: - 异构任务划分机制在传统并行编程模型的基础上增加了"异构特征描述"的维度,用于描述任务在不同设备上的分配情况; @@ -138,7 +139,7 @@ public class Result 异构编程/运行时系统的任务映射机制主要有两种:一类是直接映射,即独立完成并行任务向异构平台映射的工作,另一种是间接映射,即需要借助其他异构编译和运行时系统协助来完成部分任务映射工作。直接映射系统一般在运行时系统中实现,而间接映射通过源到源变换和是运行时分析相结合的方式实现。 -![](./heterogeneous-programming-model/Screenshot_20241016_214939.png) +![](./heterogeneous-programming-model/Screenshot_20241016_214939.webp) ### 异构编译/运行时优化 @@ -456,13 +457,13 @@ std::vector> cudaCalculateMatrix(const std::vector OpenACCCpuCalculateMatrix(const std::vector& a, con oneAPI是Intel公司提出的一套异构并行编程框架,该框架致力于达成如下几个目标:(1)定义一个跨架构、跨制造商的统一开放软件平台;(2)允许同一套代码可以在不同硬件制造商和加速技术的硬件上运行;(3)提供一套覆盖多个编程领域的库API。为了实现这些目标,oneAPI同上文中已经提到过的开放编程标准SYCL紧密合作,oneAPI也提供了一个SYCL的编译器和运行时;同时oneAPI也提供了一系列API库,包括`oneDPL`、`oneDNN`、`oneTBB`和`oneMKL`等。 -![image-20241103162259981](./heterogeneous-programming-model/image-20241103162259981.png) +![image-20241103162259981](./heterogeneous-programming-model/image-20241103162259981.webp) 我对于oneAPI的理解就是Intel用来对标NVIDIA的CUDA的一套高性能编程工具箱。首先为了和NVIDIA完全闭源的CUDA形成鲜明的对比,Intel选择了OpenCL合作同时开发SYCL,当时也有可能是Intel知道自己的显卡技不如人,如果不兼容市面上其他的部件是没有出路的,同时为了和CUDA丰富的生态竞争,Intel再开发并开源了一系列的`oneXXX`。 diff --git a/YaeBlog/source/posts/heterogeneous-programming-model/83ee1d254d638536d0fb4197ff63e758.png b/YaeBlog/source/posts/heterogeneous-programming-model/83ee1d254d638536d0fb4197ff63e758.png deleted file mode 100644 index be2c3a8..0000000 --- a/YaeBlog/source/posts/heterogeneous-programming-model/83ee1d254d638536d0fb4197ff63e758.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:024500276e29f53f65759819e1d9b6c826aa09e91f50e8821d06dcf070560a18 -size 120181 diff --git a/YaeBlog/source/posts/heterogeneous-programming-model/83ee1d254d638536d0fb4197ff63e758.webp b/YaeBlog/source/posts/heterogeneous-programming-model/83ee1d254d638536d0fb4197ff63e758.webp new file mode 100644 index 0000000..79f47f1 --- /dev/null +++ b/YaeBlog/source/posts/heterogeneous-programming-model/83ee1d254d638536d0fb4197ff63e758.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c72b55977fde8f705070e25bb2b3a1c947a590931762b4b24fee61237541a13 +size 42802 diff --git a/YaeBlog/source/posts/heterogeneous-programming-model/9eb06d8be92ddef3db33e040163c67a7.png b/YaeBlog/source/posts/heterogeneous-programming-model/9eb06d8be92ddef3db33e040163c67a7.png deleted file mode 100644 index d1388d4..0000000 --- a/YaeBlog/source/posts/heterogeneous-programming-model/9eb06d8be92ddef3db33e040163c67a7.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5989d69e8fce9d83641034f103c8d4ef21a64f659d0e05660969819aa8bd6818 -size 160181 diff --git a/YaeBlog/source/posts/heterogeneous-programming-model/9eb06d8be92ddef3db33e040163c67a7.webp b/YaeBlog/source/posts/heterogeneous-programming-model/9eb06d8be92ddef3db33e040163c67a7.webp new file mode 100644 index 0000000..92c9b83 --- /dev/null +++ b/YaeBlog/source/posts/heterogeneous-programming-model/9eb06d8be92ddef3db33e040163c67a7.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c2e4123d8743d38b3815c1e664eb6993995e887ca06aa0ff5ae1d17c5110b71 +size 41612 diff --git a/YaeBlog/source/posts/heterogeneous-programming-model/Screenshot_20241016_214139.png b/YaeBlog/source/posts/heterogeneous-programming-model/Screenshot_20241016_214139.png deleted file mode 100644 index 9b0bc73..0000000 --- a/YaeBlog/source/posts/heterogeneous-programming-model/Screenshot_20241016_214139.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:01d884fe4a429c28e53ee586ab6c7318d6dcc5b92c1891d68d6ce7af4645f431 -size 214725 diff --git a/YaeBlog/source/posts/heterogeneous-programming-model/Screenshot_20241016_214139.webp b/YaeBlog/source/posts/heterogeneous-programming-model/Screenshot_20241016_214139.webp new file mode 100644 index 0000000..bf033cb --- /dev/null +++ b/YaeBlog/source/posts/heterogeneous-programming-model/Screenshot_20241016_214139.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:50958529b872e918e157e4d2ac88fcf75217d42fea5a1a15dfc1838da5fa224e +size 55040 diff --git a/YaeBlog/source/posts/heterogeneous-programming-model/Screenshot_20241016_214939.png b/YaeBlog/source/posts/heterogeneous-programming-model/Screenshot_20241016_214939.png deleted file mode 100644 index ac22d37..0000000 --- a/YaeBlog/source/posts/heterogeneous-programming-model/Screenshot_20241016_214939.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1ec51d9872a4529d68c9b6afc9608d6b8007a57629ba5d117f7560527076d805 -size 82164 diff --git a/YaeBlog/source/posts/heterogeneous-programming-model/Screenshot_20241016_214939.webp b/YaeBlog/source/posts/heterogeneous-programming-model/Screenshot_20241016_214939.webp new file mode 100644 index 0000000..105b241 --- /dev/null +++ b/YaeBlog/source/posts/heterogeneous-programming-model/Screenshot_20241016_214939.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3f18f28e72f57c13dc8cace6c4a37ecd62158cbfe5f3be8bb745205f2f9aa5fd +size 26892 diff --git a/YaeBlog/source/posts/heterogeneous-programming-model/eab553f9e30d8d866a1ddd201b5e4c85.png b/YaeBlog/source/posts/heterogeneous-programming-model/eab553f9e30d8d866a1ddd201b5e4c85.png deleted file mode 100644 index 7483275..0000000 --- a/YaeBlog/source/posts/heterogeneous-programming-model/eab553f9e30d8d866a1ddd201b5e4c85.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f01cb683d410d1a45edc508a5ed3aeda6f1fcc208d0368a52504350cceb86c31 -size 130457 diff --git a/YaeBlog/source/posts/heterogeneous-programming-model/eab553f9e30d8d866a1ddd201b5e4c85.webp b/YaeBlog/source/posts/heterogeneous-programming-model/eab553f9e30d8d866a1ddd201b5e4c85.webp new file mode 100644 index 0000000..9ef6e21 --- /dev/null +++ b/YaeBlog/source/posts/heterogeneous-programming-model/eab553f9e30d8d866a1ddd201b5e4c85.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:72f3ba7b8137833bf5eafe8b643f4b71bf6ee32a2a88245d488fb115037eae44 +size 51792 diff --git a/YaeBlog/source/posts/heterogeneous-programming-model/image-20241020142938110.png b/YaeBlog/source/posts/heterogeneous-programming-model/image-20241020142938110.png deleted file mode 100644 index 7cd6736..0000000 --- a/YaeBlog/source/posts/heterogeneous-programming-model/image-20241020142938110.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ba84669fd872bf19b665aa673dcd1f03868ed4b4621b9abd460090cb3bb93b9a -size 171981 diff --git a/YaeBlog/source/posts/heterogeneous-programming-model/image-20241020142938110.webp b/YaeBlog/source/posts/heterogeneous-programming-model/image-20241020142938110.webp new file mode 100644 index 0000000..1fff52f --- /dev/null +++ b/YaeBlog/source/posts/heterogeneous-programming-model/image-20241020142938110.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fbf1af9f0b6b77ce5ec5b66ec9e19703d5b60ad842c34902ec742bd4ee9eedc7 +size 22878 diff --git a/YaeBlog/source/posts/heterogeneous-programming-model/image-20241020155656219.png b/YaeBlog/source/posts/heterogeneous-programming-model/image-20241020155656219.png deleted file mode 100644 index aa0ad1e..0000000 --- a/YaeBlog/source/posts/heterogeneous-programming-model/image-20241020155656219.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a4b20c42dbe0bf434b4224d23dbedee1175d5dfb21e7bfdde314e1af5b2a9586 -size 194091 diff --git a/YaeBlog/source/posts/heterogeneous-programming-model/image-20241020155656219.webp b/YaeBlog/source/posts/heterogeneous-programming-model/image-20241020155656219.webp new file mode 100644 index 0000000..0322a6c --- /dev/null +++ b/YaeBlog/source/posts/heterogeneous-programming-model/image-20241020155656219.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e7f3eb7bead9696d1251074e186b32f8cb5fad135301f6a94ee4e1fff906a4a +size 23790 diff --git a/YaeBlog/source/posts/heterogeneous-programming-model/image-20241029123308139.png b/YaeBlog/source/posts/heterogeneous-programming-model/image-20241029123308139.png deleted file mode 100644 index 774102e..0000000 --- a/YaeBlog/source/posts/heterogeneous-programming-model/image-20241029123308139.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9675685943c6124ffdc70023f19c8d043c484d72f62866e6b4e87eca270e0366 -size 76309 diff --git a/YaeBlog/source/posts/heterogeneous-programming-model/image-20241029123308139.webp b/YaeBlog/source/posts/heterogeneous-programming-model/image-20241029123308139.webp new file mode 100644 index 0000000..b56a502 --- /dev/null +++ b/YaeBlog/source/posts/heterogeneous-programming-model/image-20241029123308139.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6c45d9932eb3b021a76cecb0367794c3c86862d7000d74a8dba4e78eca1834fe +size 43252 diff --git a/YaeBlog/source/posts/heterogeneous-programming-model/image-20241029163654675.png b/YaeBlog/source/posts/heterogeneous-programming-model/image-20241029163654675.png deleted file mode 100644 index 2d64a1a..0000000 --- a/YaeBlog/source/posts/heterogeneous-programming-model/image-20241029163654675.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4e38a5bdee31a5ddf11329d6b72ca8b1b2b119f5988166477e8e0ff63a1fa40d -size 195933 diff --git a/YaeBlog/source/posts/heterogeneous-programming-model/image-20241029163654675.webp b/YaeBlog/source/posts/heterogeneous-programming-model/image-20241029163654675.webp new file mode 100644 index 0000000..933432d --- /dev/null +++ b/YaeBlog/source/posts/heterogeneous-programming-model/image-20241029163654675.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94c23eb2289265f6e1181e3b4dd151bfeb052cb54b0ee762170fd49c4aa1cbcd +size 45140 diff --git a/YaeBlog/source/posts/heterogeneous-programming-model/image-20241103162259981.png b/YaeBlog/source/posts/heterogeneous-programming-model/image-20241103162259981.png deleted file mode 100644 index fa92f1c..0000000 --- a/YaeBlog/source/posts/heterogeneous-programming-model/image-20241103162259981.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3ea27cccbb3e4de0b178fe7ea198f19e42603c90e254fca4356315998cf7dfce -size 38819 diff --git a/YaeBlog/source/posts/heterogeneous-programming-model/image-20241103162259981.webp b/YaeBlog/source/posts/heterogeneous-programming-model/image-20241103162259981.webp new file mode 100644 index 0000000..02c9d76 --- /dev/null +++ b/YaeBlog/source/posts/heterogeneous-programming-model/image-20241103162259981.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:64d6044e0cfd593262f335709a0a50f203da186c6967fda36e9d16b88ff69c21 +size 17042 diff --git a/YaeBlog/source/posts/hpc-2025-cpu-architecture.md b/YaeBlog/source/posts/hpc-2025-cpu-architecture.md index a77cb8b..b454fc9 100644 --- a/YaeBlog/source/posts/hpc-2025-cpu-architecture.md +++ b/YaeBlog/source/posts/hpc-2025-cpu-architecture.md @@ -6,6 +6,7 @@ tags: - 高性能计算 --- + How to use the newly available transistors? @@ -54,11 +55,11 @@ Move the complexity of instruction scheduling from the CPU hardware to the softw - Assign instructions to the functional units. - Determine when instructions are initiated placed together into a single word. -![image-20250313184421305](./hpc-2025-cpu-architecture/image-20250313184421305.png) +![image-20250313184421305](./hpc-2025-cpu-architecture/image-20250313184421305.webp) Comparisons between different architecture: -![image-20250313184732892](./hpc-2025-cpu-architecture/image-20250313184732892.png) +![image-20250313184732892](./hpc-2025-cpu-architecture/image-20250313184732892.webp) ## Multi-Core Processor Gala @@ -89,7 +90,7 @@ Hardware approaches to multithreading: - A variation on fine-grained multithreading -![image-20250313190913475](./hpc-2025-cpu-architecture/image-20250313190913475.png) +![image-20250313190913475](./hpc-2025-cpu-architecture/image-20250313190913475.webp) ## Data Parallelism: Vector Processors diff --git a/YaeBlog/source/posts/hpc-2025-cpu-architecture/image-20250313184421305.png b/YaeBlog/source/posts/hpc-2025-cpu-architecture/image-20250313184421305.png deleted file mode 100644 index 89925dc..0000000 --- a/YaeBlog/source/posts/hpc-2025-cpu-architecture/image-20250313184421305.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1e3183c5ad4ee11b6dd924a0ed85ed9a13d3d61a78de741fcb649fe14def6473 -size 158027 diff --git a/YaeBlog/source/posts/hpc-2025-cpu-architecture/image-20250313184421305.webp b/YaeBlog/source/posts/hpc-2025-cpu-architecture/image-20250313184421305.webp new file mode 100644 index 0000000..88093ce --- /dev/null +++ b/YaeBlog/source/posts/hpc-2025-cpu-architecture/image-20250313184421305.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da1fa5c5f18b966c14647f38cdc0007495a02bfe3d0d4739c6d5fe6ff8bf3b85 +size 18176 diff --git a/YaeBlog/source/posts/hpc-2025-cpu-architecture/image-20250313184732892.png b/YaeBlog/source/posts/hpc-2025-cpu-architecture/image-20250313184732892.png deleted file mode 100644 index 90cf137..0000000 --- a/YaeBlog/source/posts/hpc-2025-cpu-architecture/image-20250313184732892.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e9c4a4cee93475a3d73f5ed8bc97e5978ae5f099c754b4e94c2b8e5a1a2586cc -size 776759 diff --git a/YaeBlog/source/posts/hpc-2025-cpu-architecture/image-20250313184732892.webp b/YaeBlog/source/posts/hpc-2025-cpu-architecture/image-20250313184732892.webp new file mode 100644 index 0000000..468e858 --- /dev/null +++ b/YaeBlog/source/posts/hpc-2025-cpu-architecture/image-20250313184732892.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e0acec6c138987bd7783f798c096f02cc46745435e02afd476c9ea1c501a7fd4 +size 46450 diff --git a/YaeBlog/source/posts/hpc-2025-cpu-architecture/image-20250313190913475.png b/YaeBlog/source/posts/hpc-2025-cpu-architecture/image-20250313190913475.png deleted file mode 100644 index 6f3672e..0000000 --- a/YaeBlog/source/posts/hpc-2025-cpu-architecture/image-20250313190913475.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:65afb4d57b7cd63940786cf43eb5b455e6ab9b19c48257f599a01dc36616352f -size 239063 diff --git a/YaeBlog/source/posts/hpc-2025-cpu-architecture/image-20250313190913475.webp b/YaeBlog/source/posts/hpc-2025-cpu-architecture/image-20250313190913475.webp new file mode 100644 index 0000000..73273c7 --- /dev/null +++ b/YaeBlog/source/posts/hpc-2025-cpu-architecture/image-20250313190913475.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1bf11c172400f6a5b8eb54e3922baedbbc38f9da72e4d852898515106d992b99 +size 15492 diff --git a/YaeBlog/source/posts/install-pytorch.md b/YaeBlog/source/posts/install-pytorch.md index 11f8314..04304a4 100644 --- a/YaeBlog/source/posts/install-pytorch.md +++ b/YaeBlog/source/posts/install-pytorch.md @@ -1,12 +1,11 @@ --- title: 安装pytorch,来有深度的学习 -date: 2021-11-13 13:21:53 -toc: true -tags: - - 技术笔记 -typora-root-url: 安装pytorch,来有深度的学习 +date: 2021-11-13T13:21:53.0000000 +tags: +- 技术笔记 --- + 鄙人在下不才我精通深度学习框架的安装和卸载。 @@ -40,7 +39,7 @@ typora-root-url: 安装pytorch,来有深度的学习 我们访问`miniconda`的[官方网站](https://docs.conda.io/en/latest/miniconda.html) ,下滑找到最新的`miniconda`安装包下载链接(Latest Miniconda Installer Links)。 -![](1.png) +![](1.webp) 按照自己的电脑系统下载相应的安装包就可以了。也不大,就50M出头的样子。 @@ -48,7 +47,7 @@ typora-root-url: 安装pytorch,来有深度的学习 安装完成之后,我们就会发现自己的开始菜单里多出来了两个快捷方式, -![](2.png) +![](2.webp) 在上面的那个快捷方式**Anaconda Prompt**是运行含有`conda`命令的CMD的快捷方式,而下面那个**Anaconda Power Shell Prompt**是运行含有`conda`命令的Power shell界面的快捷方式。因为我个人对于power shell更加的熟悉我们就是用下面的那个快捷方式。 这个时候肯定会有人好奇,竟然你都用power shell了,我们为啥不直接使用系统里已经有了的power shell,而要启动这里的这个显得有点奇怪的power shell呢? @@ -57,7 +56,7 @@ typora-root-url: 安装pytorch,来有深度的学习 好,我们运行**Anaconda Power Shell Prompt**,打开了这个窗口 -![](3.png) +![](3.webp) 这个窗口的出现就标志着我们已经把`conda`正确的安装在我们的电脑之中了。 @@ -160,7 +159,7 @@ conda update python ### 使用conda安装pytorch 我们访问pytorch的[官方网站](https://pytorch.org/),我们可以轻松在首页就找到这个表格 -![](4.png) +![](4.webp) 先简单介绍一下这个表格的每一行,第一行是选择我们安装`pytorch`的版本,是稳定版,预览版,还是长期支持版。第二行是选择我们索要下载的操作系统,这里就默认大家都是用Windows了,第三行是选择我们安装`pytorch`的方式,可以看见有我们刚学习的`conda`,我们很熟悉的`pip`, 还有两种其他的方式。我们选择`conda`。第三行是我们所使用的语言,我们自然选择`python`。然后是第四行,“Compute Platform”, 如果直译的话是计算平台,就是我们选择用来计算的设备。这里就是又一个新的知识点了。一般来说,我们在使用电脑时,都是使用CPU作为计算的主力,显卡(GPU)一般只是用来输出图像,但在深度学习出现后,人们发现显卡原本专精于图形计算的计算力也很适用于深度学习中人工神经网络的计算。为了能够使用GPU的算力,而不是让它仅仅输出图像,我们就得下载相关的工具,这个工具就是CUDA。当然,这种比较强大的能力并不是只要下载一个CUDA就可以拥有的,~~你还得有钱~~你还得拥有一块英伟达的显卡,如果你没有显卡,那你就只能老老实实的使用自己的CPU进行计算了,在表格的第四行选择CPU。而对于我们~~土豪~~有显卡的同学,我们得先确定确定自己电脑上CUDA的版本,打开我们的老朋友power shell,输入 ``` diff --git a/YaeBlog/source/posts/install-pytorch/1.png b/YaeBlog/source/posts/install-pytorch/1.png deleted file mode 100644 index 1ea1f95..0000000 --- a/YaeBlog/source/posts/install-pytorch/1.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d1067846d8b27357d9c1be6d25d768137984074de8077445ed0347393bea76d6 -size 90203 diff --git a/YaeBlog/source/posts/install-pytorch/1.webp b/YaeBlog/source/posts/install-pytorch/1.webp new file mode 100644 index 0000000..b7c4f24 --- /dev/null +++ b/YaeBlog/source/posts/install-pytorch/1.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7399c6fd6cdf7689105607739c5b67432f6f723508b3db2dc5c370219074533f +size 30520 diff --git a/YaeBlog/source/posts/install-pytorch/2.png b/YaeBlog/source/posts/install-pytorch/2.png deleted file mode 100644 index 73551bd..0000000 --- a/YaeBlog/source/posts/install-pytorch/2.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:13206dc6972a3ce3f4b23d723f96b6ada5e34f87a051e9de446f2a07c375932d -size 38074 diff --git a/YaeBlog/source/posts/install-pytorch/2.webp b/YaeBlog/source/posts/install-pytorch/2.webp new file mode 100644 index 0000000..e8a8576 --- /dev/null +++ b/YaeBlog/source/posts/install-pytorch/2.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a4a236af737ef2fc99e7447b6da73e5fe7bd4687823235535081592e6bdbfbaf +size 20334 diff --git a/YaeBlog/source/posts/install-pytorch/3.png b/YaeBlog/source/posts/install-pytorch/3.png deleted file mode 100644 index 66ee198..0000000 --- a/YaeBlog/source/posts/install-pytorch/3.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e813716f7b1e945e10942c55a7d5ea30ea57a0d374255ed110ed90ffea03633a -size 12042 diff --git a/YaeBlog/source/posts/install-pytorch/3.webp b/YaeBlog/source/posts/install-pytorch/3.webp new file mode 100644 index 0000000..c1ed6ff --- /dev/null +++ b/YaeBlog/source/posts/install-pytorch/3.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7f36e3aeb862b586999a2f0a456da844c7472d3f86ef8dd7a562218bd2802698 +size 2242 diff --git a/YaeBlog/source/posts/install-pytorch/4.png b/YaeBlog/source/posts/install-pytorch/4.png deleted file mode 100644 index 062df7d..0000000 --- a/YaeBlog/source/posts/install-pytorch/4.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0731b5398952c034de376b9db8980c3bd8a9d8a877a2bf0bb9991015926d80ee -size 39134 diff --git a/YaeBlog/source/posts/install-pytorch/4.webp b/YaeBlog/source/posts/install-pytorch/4.webp new file mode 100644 index 0000000..365f7b2 --- /dev/null +++ b/YaeBlog/source/posts/install-pytorch/4.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:037a17878e6494a6beca6e4fd4905b1a6ca025d6ccd2e3754a3806bfb114973f +size 15894 diff --git a/YaeBlog/source/posts/laptop-for-computer.md b/YaeBlog/source/posts/laptop-for-computer.md index 022a018..39e33fa 100644 --- a/YaeBlog/source/posts/laptop-for-computer.md +++ b/YaeBlog/source/posts/laptop-for-computer.md @@ -1,12 +1,12 @@ --- title: 大学生用啥配置——计算机专业 +date: 2022-06-13T16:17:27.0000000 tags: - - 杂谈 -typora-root-url: laptop-for-computer -date: 2022-06-13 16:17:27 +- 杂谈 --- + > 本文是应B站UP主[远古时代装机猿](https://space.bilibili.com/35359510)发起的[大学生用啥配置](https://www.bilibili.com/video/BV1kZ4y1i7Le)公益活动而写 > > 目前某不知名211大学计算机专业在读 @@ -52,7 +52,7 @@ date: 2022-06-13 16:17:27 目前的性能占用如图所示 -![](c.png) +![](c.webp) 在编译代码时CPU占用会有一个短时的提升,不过由于目前编写的程序都较为简单,编译转瞬就完成了。 @@ -62,7 +62,7 @@ date: 2022-06-13 16:17:27 性能的占用如图所示 -![](clion.png) +![](clion.webp) 在刚打开项目和编译整个项目时CPU的占用会上升,但在完成之后,CPU的占用就会回落。 @@ -74,7 +74,7 @@ date: 2022-06-13 16:17:27 性能占用如图所示 -![](csharp.png) +![](csharp.webp) #### 写网站 @@ -82,7 +82,7 @@ date: 2022-06-13 16:17:27 性能占用如图所示: -![](web.png) +![](web.webp) ### 软件的运行需求分析 diff --git a/YaeBlog/source/posts/laptop-for-computer/c.png b/YaeBlog/source/posts/laptop-for-computer/c.png deleted file mode 100644 index c32ec4b..0000000 --- a/YaeBlog/source/posts/laptop-for-computer/c.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0f321d75e6ea913d68ab8a74206bd3a7dd086451fc69fde4339d39f8127de259 -size 139253 diff --git a/YaeBlog/source/posts/laptop-for-computer/c.webp b/YaeBlog/source/posts/laptop-for-computer/c.webp new file mode 100644 index 0000000..3ede867 --- /dev/null +++ b/YaeBlog/source/posts/laptop-for-computer/c.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d93cb06f6bb8472848519ff59e336d47024159570100f13637b10b91e9dc7ba3 +size 103014 diff --git a/YaeBlog/source/posts/laptop-for-computer/clion.png b/YaeBlog/source/posts/laptop-for-computer/clion.png deleted file mode 100644 index 7b2dd2d..0000000 --- a/YaeBlog/source/posts/laptop-for-computer/clion.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:85f25d0fc05c7fc6e0c50dbda02d053f9127e3510161272f2645333d4b7a9aa2 -size 147636 diff --git a/YaeBlog/source/posts/laptop-for-computer/clion.webp b/YaeBlog/source/posts/laptop-for-computer/clion.webp new file mode 100644 index 0000000..830f8cc --- /dev/null +++ b/YaeBlog/source/posts/laptop-for-computer/clion.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f991d47571c3f8e4eb1d8abf35785fd112f0d82ee56c1993cefc8b530a797b5f +size 107082 diff --git a/YaeBlog/source/posts/laptop-for-computer/csharp.png b/YaeBlog/source/posts/laptop-for-computer/csharp.png deleted file mode 100644 index 988e1fd..0000000 --- a/YaeBlog/source/posts/laptop-for-computer/csharp.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:415601b9824037f6d8c0f8b4759c0aa2afa4eafd02212c07e766727996ef30ee -size 151640 diff --git a/YaeBlog/source/posts/laptop-for-computer/csharp.webp b/YaeBlog/source/posts/laptop-for-computer/csharp.webp new file mode 100644 index 0000000..c592760 --- /dev/null +++ b/YaeBlog/source/posts/laptop-for-computer/csharp.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9887563cc3b3b76b2f5b305583ff0b6368277347a6f5afc250d46bc0624d42e0 +size 109156 diff --git a/YaeBlog/source/posts/laptop-for-computer/web.png b/YaeBlog/source/posts/laptop-for-computer/web.png deleted file mode 100644 index 4468a3e..0000000 --- a/YaeBlog/source/posts/laptop-for-computer/web.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8b889b41f828d79416eb3ccb033fe8a0ab90953aaddd2cb36ea333c560e87195 -size 146745 diff --git a/YaeBlog/source/posts/laptop-for-computer/web.webp b/YaeBlog/source/posts/laptop-for-computer/web.webp new file mode 100644 index 0000000..f0ea85a --- /dev/null +++ b/YaeBlog/source/posts/laptop-for-computer/web.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:786ab13b2c81724b80ce0aa82ecdf54aa5e469f538e1c0484d5f5038ed21d910 +size 105566 diff --git a/YaeBlog/source/posts/llvm-naive-0.md b/YaeBlog/source/posts/llvm-naive-0.md index 100a501..4ec7eb4 100644 --- a/YaeBlog/source/posts/llvm-naive-0.md +++ b/YaeBlog/source/posts/llvm-naive-0.md @@ -7,6 +7,7 @@ tags: - 技术笔记 --- + 为什么说LLVM是神? @@ -55,7 +56,7 @@ clang hello.c -o hello 编译完成之后可以正常执行: -![image-20240819213039409](./llvm-naive-0/image-20240819213039409.png) +![image-20240819213039409](./llvm-naive-0/image-20240819213039409.webp) 然后尝试将这个C语言文件编译为LLVM的字节码形式: @@ -71,7 +72,7 @@ clang -O3 -emit-llvm hello.c -c -o hello.bc lli hello.bc ``` -![image-20240819213624927](./llvm-naive-0/image-20240819213624927.png) +![image-20240819213624927](./llvm-naive-0/image-20240819213624927.webp) 可以使用反编译器将字节码转换为人类可读的文本形式: @@ -152,7 +153,7 @@ main: # @main 下面这张图展示了LLVM中各种文件的转换关系和使用的对应工具。 -![image-20240820221413791](./llvm-naive-0/image-20240820221413791.png) +![image-20240820221413791](./llvm-naive-0/image-20240820221413791.webp) ## LLVM IR @@ -268,5 +269,5 @@ entry: 使用`lli`解释器可以直接运行这段代码: -![image-20240825171858276](./llvm-naive-0/image-20240825171858276.png) +![image-20240825171858276](./llvm-naive-0/image-20240825171858276.webp) diff --git a/YaeBlog/source/posts/llvm-naive-0/image-20240819213039409.png b/YaeBlog/source/posts/llvm-naive-0/image-20240819213039409.png deleted file mode 100644 index 39a5267..0000000 --- a/YaeBlog/source/posts/llvm-naive-0/image-20240819213039409.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ce8ce7601d7b1d041f25d781622657b2864be26f632bf30740f800e3f15ab63d -size 14787 diff --git a/YaeBlog/source/posts/llvm-naive-0/image-20240819213039409.webp b/YaeBlog/source/posts/llvm-naive-0/image-20240819213039409.webp new file mode 100644 index 0000000..640b62d --- /dev/null +++ b/YaeBlog/source/posts/llvm-naive-0/image-20240819213039409.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:672011acf34f27be68cb1cae19598aa4f0da697a365b025b60a84a5891563098 +size 8006 diff --git a/YaeBlog/source/posts/llvm-naive-0/image-20240819213624927.png b/YaeBlog/source/posts/llvm-naive-0/image-20240819213624927.png deleted file mode 100644 index c9f1cdd..0000000 --- a/YaeBlog/source/posts/llvm-naive-0/image-20240819213624927.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bb82eae62bca2af0eb0c42c0e46a314a1663a161d5573ccd938a5c1d1916e67e -size 9215 diff --git a/YaeBlog/source/posts/llvm-naive-0/image-20240819213624927.webp b/YaeBlog/source/posts/llvm-naive-0/image-20240819213624927.webp new file mode 100644 index 0000000..2f52fec --- /dev/null +++ b/YaeBlog/source/posts/llvm-naive-0/image-20240819213624927.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ff4a658ea5e4805c2193276b1fb4cd688865f0831bb76fc371e26137572bc3d +size 6892 diff --git a/YaeBlog/source/posts/llvm-naive-0/image-20240820221413791.png b/YaeBlog/source/posts/llvm-naive-0/image-20240820221413791.png deleted file mode 100644 index 5d1c75b..0000000 --- a/YaeBlog/source/posts/llvm-naive-0/image-20240820221413791.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:18ff733fbd8f02ece52b3b7fd22f2df94b209f11db9af082125ad448bee6cf07 -size 81957 diff --git a/YaeBlog/source/posts/llvm-naive-0/image-20240820221413791.webp b/YaeBlog/source/posts/llvm-naive-0/image-20240820221413791.webp new file mode 100644 index 0000000..94fc168 --- /dev/null +++ b/YaeBlog/source/posts/llvm-naive-0/image-20240820221413791.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:68df83cedd473725b0379fa786739408f868863b6e205a401a4cd4335812f653 +size 33988 diff --git a/YaeBlog/source/posts/llvm-naive-0/image-20240825171858276.png b/YaeBlog/source/posts/llvm-naive-0/image-20240825171858276.png deleted file mode 100644 index 6f13bdf..0000000 --- a/YaeBlog/source/posts/llvm-naive-0/image-20240825171858276.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f198e93178db7a98fd7e2c0ffb3fc387d5b8793b37bed1cd0068d9f177a49ba6 -size 13107 diff --git a/YaeBlog/source/posts/llvm-naive-0/image-20240825171858276.webp b/YaeBlog/source/posts/llvm-naive-0/image-20240825171858276.webp new file mode 100644 index 0000000..f9658b7 --- /dev/null +++ b/YaeBlog/source/posts/llvm-naive-0/image-20240825171858276.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba4bd9fbd90f0f81bb1fd32e54d8c249a4f7a9fc4ea2b2ab968644e49132eedc +size 6948 diff --git a/YaeBlog/source/posts/minecraft-wayland.md b/YaeBlog/source/posts/minecraft-wayland.md index 645915f..bfdf931 100644 --- a/YaeBlog/source/posts/minecraft-wayland.md +++ b/YaeBlog/source/posts/minecraft-wayland.md @@ -1,11 +1,12 @@ --- title: 让Minecraft运行在Wayland下 +date: 2024-01-12T20:10:06.0000000 tags: - - Linux - - 生活小妙招 -date: 2024-1-12 20:10:06 +- Linux +- 生活小妙招 --- + 让Minecraft游戏使用`Wayland`显示协议。 @@ -127,15 +128,15 @@ export __GL_THREADED_OPTIMIZATIONS=0 然后就是设置Minecraft使用我们自行编译的图形库,需要设置`java`启动参数,我使用的[hmcl](https://github.com/huanghongxun/HMCL)这款启动器,可以在设置里面很方便的设置启动参数: -![image-20240105212744116](./minecraft-wayland/image-20240105212744116.png) +![image-20240105212744116](./minecraft-wayland/image-20240105212744116.webp) 但是,如果你使用的是`nvidia`显卡,这里还会遇到一个问题: -![image-20240105213439528](./minecraft-wayland/image-20240105213439528.png) +![image-20240105213439528](./minecraft-wayland/image-20240105213439528.webp) 这个问题从一些资料显示仍然是老黄整的好活: -![image-20240105213942445](./minecraft-wayland/image-20240105213942445.png) +![image-20240105213942445](./minecraft-wayland/image-20240105213942445.webp) 设置环境变量解决,再次强烈推荐[hmcl](https://github.com/huanghongxun/HMCL)启动器,可以方便的设置环境变量。 diff --git a/YaeBlog/source/posts/minecraft-wayland/image-20240105212744116.png b/YaeBlog/source/posts/minecraft-wayland/image-20240105212744116.png deleted file mode 100644 index 4d2005d..0000000 --- a/YaeBlog/source/posts/minecraft-wayland/image-20240105212744116.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0308351e4a4a5387ea689fb5841e89578c5dd8e31a8f173c1842b4fa0819b537 -size 57285 diff --git a/YaeBlog/source/posts/minecraft-wayland/image-20240105212744116.webp b/YaeBlog/source/posts/minecraft-wayland/image-20240105212744116.webp new file mode 100644 index 0000000..920799e --- /dev/null +++ b/YaeBlog/source/posts/minecraft-wayland/image-20240105212744116.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4b88af664411089105ab95d3c2e8678796dab177484664251c073eef31356f2f +size 47110 diff --git a/YaeBlog/source/posts/minecraft-wayland/image-20240105213439528.png b/YaeBlog/source/posts/minecraft-wayland/image-20240105213439528.png deleted file mode 100644 index bbcb1e0..0000000 --- a/YaeBlog/source/posts/minecraft-wayland/image-20240105213439528.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b4d43e3eb2635648c755d8ab724a84571fb107f2b627495abdaaa7c058f313be -size 12603 diff --git a/YaeBlog/source/posts/minecraft-wayland/image-20240105213439528.webp b/YaeBlog/source/posts/minecraft-wayland/image-20240105213439528.webp new file mode 100644 index 0000000..2e377fb --- /dev/null +++ b/YaeBlog/source/posts/minecraft-wayland/image-20240105213439528.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c2489337160ab1eb5620d5cdee9d927b5a4dab2d90d5d6c571a7641acecbe45 +size 7410 diff --git a/YaeBlog/source/posts/minecraft-wayland/image-20240105213942445.png b/YaeBlog/source/posts/minecraft-wayland/image-20240105213942445.png deleted file mode 100644 index af1237d..0000000 --- a/YaeBlog/source/posts/minecraft-wayland/image-20240105213942445.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8379ee6733e6753da5ed2acddfcdff39b60e51d6f04c5e3c577e07ef6792bfc9 -size 153864 diff --git a/YaeBlog/source/posts/minecraft-wayland/image-20240105213942445.webp b/YaeBlog/source/posts/minecraft-wayland/image-20240105213942445.webp new file mode 100644 index 0000000..dee85cb --- /dev/null +++ b/YaeBlog/source/posts/minecraft-wayland/image-20240105213942445.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:40096bb91cfc78eb62c94487ca8fb8506e7390d4800cd07aee24b884801cb70a +size 65760 diff --git a/YaeBlog/source/posts/mlir-standalone.md b/YaeBlog/source/posts/mlir-standalone.md index 7943448..578c77f 100644 --- a/YaeBlog/source/posts/mlir-standalone.md +++ b/YaeBlog/source/posts/mlir-standalone.md @@ -6,6 +6,7 @@ tags: - LLVM --- + MLIR是多层次中间表示形式(Multi-Level Intermediate Representation),是LLVM项目中提供的一项新编译器开发基础设施,使得编译器开发者能够在源代码和可执行代码之间定义多层IR来保留程序信息指导编译优化。本博客指导如何创建一个独立(out-of-tree)的MLIR项目。 @@ -35,7 +36,7 @@ cd build cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="/home/ricardo/.local/share/llvm-20.1.0" -DLLVM_ENABLE_PROJECTS="llvm;clang;mlir" -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DLLVM_INSTALL_UTILS=true ../llvm ``` -![image-20250319192618697](./mlir-standalone/image-20250319192618697.png) +![image-20250319192618697](./mlir-standalone/image-20250319192618697.webp) 生成构建文件之后使用`ninja`进行构建。 @@ -43,7 +44,7 @@ cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="/home/ricardo/ ninja ``` -![image-20250319194742171](./mlir-standalone/image-20250319194742171.png) +![image-20250319194742171](./mlir-standalone/image-20250319194742171.webp) 构建在我的i5-13600K上大约需要20分钟。 @@ -93,7 +94,7 @@ cmake -G Ninja -DMLIR_DIR=$LLVM_DIR/lib/cmake/mlir .. 可以顺利通过编译。 -![image-20250319202218503](./mlir-standalone/image-20250319202218503.png) +![image-20250319202218503](./mlir-standalone/image-20250319202218503.webp) ### 启用测试 @@ -106,7 +107,7 @@ cmake -G Ninja -DMLIR_DIR=$LLVM_DIR/lib/cmake/mlir .. 很好顺利报错,报错的提示是缺失`FileCheck`、`count`和`not`。 -![image-20250319202553644](./mlir-standalone/image-20250319202553644.png) +![image-20250319202553644](./mlir-standalone/image-20250319202553644.webp) 那么按照`README.md`中的提示添加上来自构建目录的`llvm-lit`会怎么样呢? @@ -120,7 +121,7 @@ cmake -G Ninja -DMLIR_DIR=$LLVM_DIR/lib/cmake/mlir -DLLVM_EXTERNAL_LIT=$LLVM_BUI 经过对于LLVM文档的仔细研究,发现原来是没有启动这个变量: -![image-20250319204057832](./mlir-standalone/image-20250319204057832.png) +![image-20250319204057832](./mlir-standalone/image-20250319204057832.webp) 遂修改最初的LLVM编译指令。 @@ -130,7 +131,7 @@ cmake -G Ninja -DMLIR_DIR=$LLVM_DIR/lib/cmake/mlir -DLLVM_EXTERNAL_LIT=$LLVM_BUI ninja test-standalone ``` -![image-20250319204522857](./mlir-standalone/image-20250319204522857.png) +![image-20250319204522857](./mlir-standalone/image-20250319204522857.webp) 不过这个还是有一点令我不是特别满意,这依赖了一个来自于构建目录的工具`llvm-lit`,如果我编译安装的时候眼疾手快的删除了编译目录不就完蛋了。而且我都**standalone**了还依赖似乎有点说不过去? @@ -160,4 +161,4 @@ cmake -G Ninja -DMLIR_DIR=$LLVM_DIR/lib/cmake/mlir -DLLVM_EXTERNAL_LIT=$(which l ninja test-standalone ``` -![image-20250319205520649](./mlir-standalone/image-20250319205520649.png) +![image-20250319205520649](./mlir-standalone/image-20250319205520649.webp) diff --git a/YaeBlog/source/posts/mlir-standalone/image-20250319192618697.png b/YaeBlog/source/posts/mlir-standalone/image-20250319192618697.png deleted file mode 100644 index 32d3974..0000000 --- a/YaeBlog/source/posts/mlir-standalone/image-20250319192618697.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:dce1e3bf8f40cb65ab1a75bd2640d8f40573c977de20c748d9ece4d3efbeb791 -size 76812 diff --git a/YaeBlog/source/posts/mlir-standalone/image-20250319192618697.webp b/YaeBlog/source/posts/mlir-standalone/image-20250319192618697.webp new file mode 100644 index 0000000..267dae8 --- /dev/null +++ b/YaeBlog/source/posts/mlir-standalone/image-20250319192618697.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f5af895b246f31588b64715d5b8efe265fc35774c7b534163de99fb07970f48c +size 7738 diff --git a/YaeBlog/source/posts/mlir-standalone/image-20250319194742171.png b/YaeBlog/source/posts/mlir-standalone/image-20250319194742171.png deleted file mode 100644 index c03dbce..0000000 --- a/YaeBlog/source/posts/mlir-standalone/image-20250319194742171.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:41c2aae547c0d4ab2ccd520bc7bb914222a95dfdb879f0166e624fa7edbccb79 -size 26105 diff --git a/YaeBlog/source/posts/mlir-standalone/image-20250319194742171.webp b/YaeBlog/source/posts/mlir-standalone/image-20250319194742171.webp new file mode 100644 index 0000000..870f11a --- /dev/null +++ b/YaeBlog/source/posts/mlir-standalone/image-20250319194742171.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8916648fa02bdef28250f39ae36e2d0fe894ac7bb653f574e85ca2898beaf974 +size 8086 diff --git a/YaeBlog/source/posts/mlir-standalone/image-20250319202218503.png b/YaeBlog/source/posts/mlir-standalone/image-20250319202218503.png deleted file mode 100644 index a797831..0000000 --- a/YaeBlog/source/posts/mlir-standalone/image-20250319202218503.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:270725669a377f83b2c134272f0f5489411ef549d8997600b3acb1bd37aac85f -size 19846 diff --git a/YaeBlog/source/posts/mlir-standalone/image-20250319202218503.webp b/YaeBlog/source/posts/mlir-standalone/image-20250319202218503.webp new file mode 100644 index 0000000..57ddb5a --- /dev/null +++ b/YaeBlog/source/posts/mlir-standalone/image-20250319202218503.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3440df949ceee03748b6c0519610a67aad977a1d0101447d7b6c39c5dbb632df +size 9598 diff --git a/YaeBlog/source/posts/mlir-standalone/image-20250319202553644.png b/YaeBlog/source/posts/mlir-standalone/image-20250319202553644.png deleted file mode 100644 index d8c5e37..0000000 --- a/YaeBlog/source/posts/mlir-standalone/image-20250319202553644.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f0398124dda06e47933e7631f3c1363a21eb3b32db05c709ba157819da69fa6b -size 114678 diff --git a/YaeBlog/source/posts/mlir-standalone/image-20250319202553644.webp b/YaeBlog/source/posts/mlir-standalone/image-20250319202553644.webp new file mode 100644 index 0000000..6c682a7 --- /dev/null +++ b/YaeBlog/source/posts/mlir-standalone/image-20250319202553644.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:33826ceb4246b65b55a44fe3d1c7e9dcb72a5ee7e917fc6c18e944e9e7a3e1aa +size 21426 diff --git a/YaeBlog/source/posts/mlir-standalone/image-20250319204057832.png b/YaeBlog/source/posts/mlir-standalone/image-20250319204057832.png deleted file mode 100644 index 57dff91..0000000 --- a/YaeBlog/source/posts/mlir-standalone/image-20250319204057832.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bb677444bdc074b20d795d1ab134344e73082b3be206cb5507eb8ddc9677b679 -size 18618 diff --git a/YaeBlog/source/posts/mlir-standalone/image-20250319204057832.webp b/YaeBlog/source/posts/mlir-standalone/image-20250319204057832.webp new file mode 100644 index 0000000..865a57c --- /dev/null +++ b/YaeBlog/source/posts/mlir-standalone/image-20250319204057832.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0a941d0a6f4e40bb4002e082541ba96fbbc615e3cbc1ecae0f7e376090a802c6 +size 14166 diff --git a/YaeBlog/source/posts/mlir-standalone/image-20250319204522857.png b/YaeBlog/source/posts/mlir-standalone/image-20250319204522857.png deleted file mode 100644 index 224d2ea..0000000 --- a/YaeBlog/source/posts/mlir-standalone/image-20250319204522857.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f0f8813f97e766aaf1f0fe67f1ff5d4c21d4584ed677de08da2edc9bca222a1f -size 48105 diff --git a/YaeBlog/source/posts/mlir-standalone/image-20250319204522857.webp b/YaeBlog/source/posts/mlir-standalone/image-20250319204522857.webp new file mode 100644 index 0000000..db2dd15 --- /dev/null +++ b/YaeBlog/source/posts/mlir-standalone/image-20250319204522857.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:65136396fea6c22f1775523bd8c1e762c0ab6adf366e66c5b735ce1afcd1607f +size 15996 diff --git a/YaeBlog/source/posts/mlir-standalone/image-20250319205520649.png b/YaeBlog/source/posts/mlir-standalone/image-20250319205520649.png deleted file mode 100644 index 910ed77..0000000 --- a/YaeBlog/source/posts/mlir-standalone/image-20250319205520649.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:07320dbbb252cbf10e3ccde1b2ed06a1aed35dd128932cebdba387d9f88e599a -size 37427 diff --git a/YaeBlog/source/posts/mlir-standalone/image-20250319205520649.webp b/YaeBlog/source/posts/mlir-standalone/image-20250319205520649.webp new file mode 100644 index 0000000..2e527e0 --- /dev/null +++ b/YaeBlog/source/posts/mlir-standalone/image-20250319205520649.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c680ecc320ce7801e0e54c149d9ef619019405d1f0ba1031c5c5605d40f736c3 +size 10614 diff --git a/YaeBlog/source/posts/parser-combinator-performance.md b/YaeBlog/source/posts/parser-combinator-performance.md index fe49651..c13a3cf 100644 --- a/YaeBlog/source/posts/parser-combinator-performance.md +++ b/YaeBlog/source/posts/parser-combinator-performance.md @@ -1,11 +1,12 @@ --- title: 解析器组合子和LR(1)分析方法的性能比较 +date: 2024-08-19T14:31:00.0000000 tags: - - 编译原理 - - 技术笔记 -date: 2024-08-19 14:31:00 +- 编译原理 +- 技术笔记 --- + 在使用解析器组合子编写编译器前端时,其与LR分析方法之间的性能差距是开发人员关心的重点问题之一。 @@ -146,7 +147,7 @@ public class GrammarParserBenchmark 在对原始数据进行数据处理之后我们绘制了如下的图。图中的横轴是输入测试文件的编号,图中的纵轴是`CanonSharp`解析器和`Canon`解析器运行时间的比值。从图中可以看出`CanonSharp`解析器的运行时间大约是`Canon`解析器运行时间的65到75倍,在某些极端的情况下可能会达到90倍。 -![image-20240819140523087](./parser-combinator-performance/image-20240819140523087.png) +![image-20240819140523087](./parser-combinator-performance/image-20240819140523087.webp) ## 结论 diff --git a/YaeBlog/source/posts/parser-combinator-performance/image-20240819140523087.png b/YaeBlog/source/posts/parser-combinator-performance/image-20240819140523087.png deleted file mode 100644 index a06cdf6..0000000 --- a/YaeBlog/source/posts/parser-combinator-performance/image-20240819140523087.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a34416d22a7b254db9904d2bb5ec5b7082a76df514c0316812f3477618f5c5eb -size 30728 diff --git a/YaeBlog/source/posts/parser-combinator-performance/image-20240819140523087.webp b/YaeBlog/source/posts/parser-combinator-performance/image-20240819140523087.webp new file mode 100644 index 0000000..b621851 --- /dev/null +++ b/YaeBlog/source/posts/parser-combinator-performance/image-20240819140523087.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a78ceaf7a4bab37963057c792aae1373385042c3dce61dca04f288d3b3458037 +size 14538 diff --git a/YaeBlog/source/posts/parser-combinator.md b/YaeBlog/source/posts/parser-combinator.md index baf2b98..cc2130a 100644 --- a/YaeBlog/source/posts/parser-combinator.md +++ b/YaeBlog/source/posts/parser-combinator.md @@ -1,12 +1,13 @@ --- title: 使用Parser Combinator编写编译器前端 +date: 2024-08-13T18:09:10.0000000 tags: - - 编译原理 - - C# - - 技术笔记 -date: 2024-08-13 18:09:10 +- 编译原理 +- C# +- 技术笔记 --- + 在函数式编程思想的指导下,使用Parser Combinator编写编译器前端。 @@ -402,7 +403,7 @@ public class C { -![image-20240813214315576](./parser-combinator/image-20240813214315576.png) +![image-20240813214315576](./parser-combinator/image-20240813214315576.webp) 跳过组合子的实现则是使用我们之前提过的修改组合子(Fix Parser)进行的。 @@ -454,9 +455,9 @@ public static Parser> Quote(thi Pascal-S语言的词法约定如下所示: -![image-20240813220521028](./parser-combinator/image-20240813220521028.png) +![image-20240813220521028](./parser-combinator/image-20240813220521028.webp) -![image-20240813220530717](./parser-combinator/image-20240813220530717.png) +![image-20240813220530717](./parser-combinator/image-20240813220530717.webp) 据此,我们可以开始编写对应的词法分析器。首先给出一个词法令牌的规定,将词法令牌分类为: diff --git a/YaeBlog/source/posts/parser-combinator/image-20240813214315576.png b/YaeBlog/source/posts/parser-combinator/image-20240813214315576.png deleted file mode 100644 index 3cae470..0000000 --- a/YaeBlog/source/posts/parser-combinator/image-20240813214315576.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c8565dc29005087be0fff55f3c56331cdcc70cc977ccbf9ef8ae047f90e5b8f3 -size 29655 diff --git a/YaeBlog/source/posts/parser-combinator/image-20240813214315576.webp b/YaeBlog/source/posts/parser-combinator/image-20240813214315576.webp new file mode 100644 index 0000000..a549db4 --- /dev/null +++ b/YaeBlog/source/posts/parser-combinator/image-20240813214315576.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:92c8739d775414fe9e06c338bc2635529da4e2066ee76273cce42cc0d67020bf +size 13462 diff --git a/YaeBlog/source/posts/parser-combinator/image-20240813220521028.png b/YaeBlog/source/posts/parser-combinator/image-20240813220521028.png deleted file mode 100644 index dc4ba0b..0000000 --- a/YaeBlog/source/posts/parser-combinator/image-20240813220521028.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:608d183ed3511d9c42ad2cd79f576c42609c99fb94a3014f8c841d5d95bf6a6d -size 164153 diff --git a/YaeBlog/source/posts/parser-combinator/image-20240813220521028.webp b/YaeBlog/source/posts/parser-combinator/image-20240813220521028.webp new file mode 100644 index 0000000..68bc9cf --- /dev/null +++ b/YaeBlog/source/posts/parser-combinator/image-20240813220521028.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fefce83495bdc3ae267b93ec2e46e7979fe528329c69156b61e2956abdbd216e +size 60562 diff --git a/YaeBlog/source/posts/parser-combinator/image-20240813220530717.png b/YaeBlog/source/posts/parser-combinator/image-20240813220530717.png deleted file mode 100644 index 7f01189..0000000 --- a/YaeBlog/source/posts/parser-combinator/image-20240813220530717.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3db9d6b10173fd0bfa8dab9ae7c52b4f4ac151d2f2322cf34c055029e1560e69 -size 106064 diff --git a/YaeBlog/source/posts/parser-combinator/image-20240813220530717.webp b/YaeBlog/source/posts/parser-combinator/image-20240813220530717.webp new file mode 100644 index 0000000..a60dbb8 --- /dev/null +++ b/YaeBlog/source/posts/parser-combinator/image-20240813220530717.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:106855c0f051d0130474330fe5944752bb6236dea870584e9152ac09efc8352e +size 53078 diff --git a/YaeBlog/source/posts/program-design-introduction.md b/YaeBlog/source/posts/program-design-introduction.md index 1171fdd..7dabd70 100644 --- a/YaeBlog/source/posts/program-design-introduction.md +++ b/YaeBlog/source/posts/program-design-introduction.md @@ -1,18 +1,19 @@ --- title: 程序设计与计算导论笔记 -date: 2021-11-17 16:38:30 +date: 2021-11-17T16:38:30.0000000 tags: - - 学习资料 +- 学习资料 --- + 直接扒的老黄的PPT ,简直毫无参考价值。 不保证笔记的绝对正确性。 如果导致考试爆炸,不承担任何责任。 ## 第一章——程序设计概论 -![第一章](./program-design-introduction/1.png) +![第一章](./program-design-introduction/1.webp) ## 第二章——C语言概述 -![第二章](./program-design-introduction/2.png) -![第二章](./program-design-introduction/3.png) +![第二章](./program-design-introduction/2.webp) +![第二章](./program-design-introduction/3.webp) diff --git a/YaeBlog/source/posts/program-design-introduction/1.png b/YaeBlog/source/posts/program-design-introduction/1.png deleted file mode 100644 index 6253516..0000000 --- a/YaeBlog/source/posts/program-design-introduction/1.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6c1ff62a089d129cd7f1d62977829d2625627a758725aa5171af9bbddb61e1b0 -size 263019 diff --git a/YaeBlog/source/posts/program-design-introduction/1.webp b/YaeBlog/source/posts/program-design-introduction/1.webp new file mode 100644 index 0000000..689fc76 --- /dev/null +++ b/YaeBlog/source/posts/program-design-introduction/1.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d57d00ba1d8fb8ba0d8e5fa0016eeaac4e270f927b1bcfcc2a2c9ac464fba53f +size 359910 diff --git a/YaeBlog/source/posts/program-design-introduction/2.png b/YaeBlog/source/posts/program-design-introduction/2.png deleted file mode 100644 index 240ecbf..0000000 --- a/YaeBlog/source/posts/program-design-introduction/2.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:700eff5428a635793910f8058dd83c395f661f68497c0a5e7f780b03cc5c9081 -size 315995 diff --git a/YaeBlog/source/posts/program-design-introduction/2.webp b/YaeBlog/source/posts/program-design-introduction/2.webp new file mode 100644 index 0000000..f4bef91 --- /dev/null +++ b/YaeBlog/source/posts/program-design-introduction/2.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a4836148c40f2ba7129eadbb48fd372e2fd316c343157fe08c41f55113d3840 +size 420884 diff --git a/YaeBlog/source/posts/program-design-introduction/3.png b/YaeBlog/source/posts/program-design-introduction/3.png deleted file mode 100644 index 64b21dc..0000000 --- a/YaeBlog/source/posts/program-design-introduction/3.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3e4a7ac08ebc2f1c524b9c0b1eefc97d5f9a855251f36cab44be81d901b1ea1f -size 686513 diff --git a/YaeBlog/source/posts/program-design-introduction/3.webp b/YaeBlog/source/posts/program-design-introduction/3.webp new file mode 100644 index 0000000..c5f86f3 --- /dev/null +++ b/YaeBlog/source/posts/program-design-introduction/3.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:84d3936b5beb8b410df70a7e4e169451c859305ef97bc2214a5433fb01f2db59 +size 922942 diff --git a/YaeBlog/source/posts/qt-learning.md b/YaeBlog/source/posts/qt-learning.md index c18cf5e..15e380b 100644 --- a/YaeBlog/source/posts/qt-learning.md +++ b/YaeBlog/source/posts/qt-learning.md @@ -1,12 +1,12 @@ --- title: 初学Qt的一点小笔记 +date: 2022-07-01T14:32:39.0000000 tags: - - 技术笔记 - - C/C++ -typora-root-url: qt-learning -date: 2022-07-01 14:32:39 +- 技术笔记 +- C/C++ --- + 最近的大作业需要用 `C/C++`的技术栈实现一个图形化界面,`Qt`作为C++图形化框架久负盛名,正好借着这个写大作业的机会学习一下这个应用广泛的框架。 @@ -45,7 +45,7 @@ errorMsg.obj : error LNK2001: unresolved external symbol "public: virtual int __ - 在`CMakeLists.txt`文件中需要定义`set(CMAKE_AUTOMOC ON)` - 在包含这个头文件的地方需要将头文件的名称改为预处理之后的名称`moc_*.cpp`,如下图所示 -![](1.png) +![](1.webp) ## Qt Designer diff --git a/YaeBlog/source/posts/qt-learning/1.png b/YaeBlog/source/posts/qt-learning/1.png deleted file mode 100644 index e5e118a..0000000 --- a/YaeBlog/source/posts/qt-learning/1.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:44d4b15d38af85412c9a7e502a502afaa9bac3c08b91db89207edfe90ee9ea1f -size 52016 diff --git a/YaeBlog/source/posts/qt-learning/1.webp b/YaeBlog/source/posts/qt-learning/1.webp new file mode 100644 index 0000000..0fe27ab --- /dev/null +++ b/YaeBlog/source/posts/qt-learning/1.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0ff8fa0f8cbfb3de6bfb98fb3d18ae4f5c9798c109d95ee14a5482755445ddd1 +size 27244 diff --git a/YaeBlog/source/posts/question-in-install-vs-2019.md b/YaeBlog/source/posts/question-in-install-vs-2019.md index 4abbaf6..c11adcc 100644 --- a/YaeBlog/source/posts/question-in-install-vs-2019.md +++ b/YaeBlog/source/posts/question-in-install-vs-2019.md @@ -1,10 +1,11 @@ --- title: 安装vs2019踩的坑 -date: 2021-08-14 10:06:00 +date: 2021-08-14T10:06:00.0000000 tags: - - 技术笔记 +- 技术笔记 --- + 在某个月黑风高的夜晚,我在折腾了很久的Python之后,突然感觉自己应该去学学C和C++,于是乎我便打算折腾一下在vscode上写C和C++。在网上一番搜寻之后,我发现了这篇[知乎文章](https://zhuanlan.zhihu.com/p/87864677)和这篇[知乎文章](https://zhuanlan.zhihu.com/p/147366852),然后我就被安装MinGW编译器和配置一大堆的json文件给干碎了。
于是,我决定转向传说中的宇宙第一IDE——Visual Studio。
@@ -12,7 +13,7 @@ tags: > 无他,就是太穷了。
在点击下载链接之后,跳转到了感谢下载的界面。
-![](./question-in-install-vs-2019/1.png) +![](./question-in-install-vs-2019/1.webp) 上面清楚的写着,下载将很快开始。 在经过漫长的等待之后,我下载下来了这个东西 >vs_community__355502915.1625217430.exe @@ -24,7 +25,7 @@ tags: >不可能,微软的软件不会出错,一定是我自己选错了。 我立刻卸载了电脑上的vs2017和Visual Studio Installer,再次前往vs的[官网](https://visualstudio.microsoft.com/zh-hans/vs/),这次我前检查后检查,确定自己下载的是Visual Studio 2019的Community版本,在单击了下载链接之后,我又跳转到了感谢下载的界面。 -![](./question-in-install-vs-2019/1.png) +![](./question-in-install-vs-2019/1.webp) 但是这次,在令人十分无语的等待之后,我不得不点了下单击此处以重试。 在一段令人紧张的等待之后,Visual Studio Installer安装好了,我也失望的发现,我安装的仍然是vs2017。 >谢谢,电脑已经砸了。 diff --git a/YaeBlog/source/posts/question-in-install-vs-2019/1.png b/YaeBlog/source/posts/question-in-install-vs-2019/1.png deleted file mode 100644 index 97c6d07..0000000 --- a/YaeBlog/source/posts/question-in-install-vs-2019/1.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b6fd368bfe4a7defb24d72f069ca7a7bf8f69a417ac65e8dd7c526576cc4f14e -size 229076 diff --git a/YaeBlog/source/posts/question-in-install-vs-2019/1.webp b/YaeBlog/source/posts/question-in-install-vs-2019/1.webp new file mode 100644 index 0000000..ccea748 --- /dev/null +++ b/YaeBlog/source/posts/question-in-install-vs-2019/1.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8541c37d3a7edfe50f6e8c4cb0d2ef8a5b860a9ae95e2d2adcfaa3326463f3ec +size 96866 diff --git a/YaeBlog/source/posts/rust-drop-stack-overflow.md b/YaeBlog/source/posts/rust-drop-stack-overflow.md index 37927aa..abfded7 100644 --- a/YaeBlog/source/posts/rust-drop-stack-overflow.md +++ b/YaeBlog/source/posts/rust-drop-stack-overflow.md @@ -6,6 +6,7 @@ tags: - 技术笔记 --- + 这辈子就是被Rust编译器害了.jpg @@ -14,15 +15,15 @@ tags: 事情是这样的,当我实现完`Sysy`语言的语法分析器并编写了一些白盒测试用例之后,我便打算将官方提供的100个测试用例作为输入运行看看能不能**正常**的解析成抽象语法树(显然不可能手动检查生成的抽象语法树是否正确)。我首先在`main.rs`里面实现了读取所有的`.sy`文件,进行词法分析和语法分析的逻辑,程序在这里这正常的识别了大多数的输入文件,在一些浮点数的输入上还存在一些问题。于是我便打算将这些逻辑重构到一个Rust的集成测试中,方便在CI中使用`cargo test`进行运行测试。但是在重构完成之后使用`cargo test`进行运行时我去遇到了如下的运行时错误。 -![image-20241105181144993](./rust-drop-stack-overflow/image-20241105181144993.png) +![image-20241105181144993](./rust-drop-stack-overflow/image-20241105181144993.webp) 看到这个报错的第一瞬间,我怀疑是因为`cargo test`和`cargo run`的运行环境不同,导致测试程序读取到了其他其实不是`sysy`程序但是以`.sy`结尾的文件,而恰好这个文件又能被解析,使得解析器组合子工作的过程中调用链太长而导致栈溢出,于是我在`RustRover`中打断点调试运行,却发现程序正确的读取到输入文件。这就奇怪了,我于是让程序继续运行到报错,看看报错时候程序的调用栈是被什么东西填满了,然后发现程序的调用栈长这样: -![image-20241105181612954](./rust-drop-stack-overflow/image-20241105181612954.png) +![image-20241105181612954](./rust-drop-stack-overflow/image-20241105181612954.webp) 并不是我程序中代码的调用太深导致的,而是Rust编译器自动生成的`drop`函数导致的。于是尝试看看调用栈的底部,看看是在读取什么输入数据,`drop`什么神仙数据结构的时候发生的。调试器很快告诉我们,`drop`的数据结构是抽象语法树中的二元表达式,而此时的输入代码则如下图所示,而且图中的代码重复了400行。 -![image-20241105182036975](./rust-drop-stack-overflow/image-20241105182036975.png) +![image-20241105182036975](./rust-drop-stack-overflow/image-20241105182036975.webp) 我已经能想象到那棵高耸如云的抽象语法树了。 diff --git a/YaeBlog/source/posts/rust-drop-stack-overflow/image-20241105181144993.png b/YaeBlog/source/posts/rust-drop-stack-overflow/image-20241105181144993.png deleted file mode 100644 index 93f1df8..0000000 --- a/YaeBlog/source/posts/rust-drop-stack-overflow/image-20241105181144993.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8cfa995fa0114dc3ca2a412da668d1e35e28072f06bb44b5abc8759c15d71275 -size 49002 diff --git a/YaeBlog/source/posts/rust-drop-stack-overflow/image-20241105181144993.webp b/YaeBlog/source/posts/rust-drop-stack-overflow/image-20241105181144993.webp new file mode 100644 index 0000000..c73fb82 --- /dev/null +++ b/YaeBlog/source/posts/rust-drop-stack-overflow/image-20241105181144993.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:47978418a849a3b60591de273a4041d739ef69de949af21d6a395151c7cfdff8 +size 12372 diff --git a/YaeBlog/source/posts/rust-drop-stack-overflow/image-20241105181612954.png b/YaeBlog/source/posts/rust-drop-stack-overflow/image-20241105181612954.png deleted file mode 100644 index 6c6699d..0000000 --- a/YaeBlog/source/posts/rust-drop-stack-overflow/image-20241105181612954.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:eba69761c69d220e829c43d064ba652b2bd5f7bf3a1f93c37c22a5e332b284a9 -size 81175 diff --git a/YaeBlog/source/posts/rust-drop-stack-overflow/image-20241105181612954.webp b/YaeBlog/source/posts/rust-drop-stack-overflow/image-20241105181612954.webp new file mode 100644 index 0000000..aea52eb --- /dev/null +++ b/YaeBlog/source/posts/rust-drop-stack-overflow/image-20241105181612954.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7f7c19288ab5cd8430c88796535dc598b5650939c3aab306c1f0b93cac716c99 +size 24398 diff --git a/YaeBlog/source/posts/rust-drop-stack-overflow/image-20241105182036975.png b/YaeBlog/source/posts/rust-drop-stack-overflow/image-20241105182036975.png deleted file mode 100644 index 6c1317e..0000000 --- a/YaeBlog/source/posts/rust-drop-stack-overflow/image-20241105182036975.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4797186c7079795d37728da7227101aac6c8ce8b0da11af988f7ea5606191364 -size 43027 diff --git a/YaeBlog/source/posts/rust-drop-stack-overflow/image-20241105182036975.webp b/YaeBlog/source/posts/rust-drop-stack-overflow/image-20241105182036975.webp new file mode 100644 index 0000000..4f45fda --- /dev/null +++ b/YaeBlog/source/posts/rust-drop-stack-overflow/image-20241105182036975.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a46c711a6735d5581ff208b4fa2943622bb9ea1bfb9e8bd06f52b27e321cf479 +size 8022 diff --git a/YaeBlog/source/posts/software-engineer.md b/YaeBlog/source/posts/software-engineer.md index a5b0229..ddcd614 100644 --- a/YaeBlog/source/posts/software-engineer.md +++ b/YaeBlog/source/posts/software-engineer.md @@ -1,11 +1,12 @@ --- title: 软件工程 +date: 2024-06-12T20:27:25.0000000 tags: - - 软件工程 - - 学习资料 -date: 2024-06-12 20:27:25 +- 软件工程 +- 学习资料 --- + 你说得对,但软工无非就是瀑布模型规定的那六项基本活动及其变化,然后细化到需求分析需要用UML规范化表示的建模方法,后面就是如何通过框架模块的结构确定软件对象有哪些并分配功能。当然这其中也涉及到模块独立性的设计原则以及面向对象的7个设计原则,之后就是软件测试的白盒和黑盒方法。 ## 软件工程概述 @@ -61,7 +62,7 @@ F.L. Bauer提出,软件工程就是为了经济地获得能够在实际机器 #### 瀑布模型 -![image-20240620211321957](software-engineer/image-20240620211321957.png) +![image-20240620211321957](software-engineer/image-20240620211321957.webp) 瀑布模型强调在软件实现之前必须进行分析和设计工作,同时也造成了模型缺乏灵活性的问题,特别是面对软件的需求不明确或者不准确的情况时,模型的风险控制能力较弱。 @@ -71,19 +72,19 @@ F.L. Bauer提出,软件工程就是为了经济地获得能够在实际机器 烟火模型提倡进行两次开发。第一次开发得到实验性的原型产品,其目的是探索可行性,弄清软件的需求。第二次在第一次的基础上获得较为满意的软件产品。 -![image-20240620212101864](software-engineer/image-20240620212101864.png) +![image-20240620212101864](software-engineer/image-20240620212101864.webp) 演化模型在明确用户需求和降低开发风险的同时,也带来了难以管理、结构较差和技术不成熟的问题,同时可能抛弃掉瀑布模型的文档控制优点。因此演化模型更多适合于需求不清晰的小型或中型系统,适用于开发周期较短的场合。 #### 增量模型 -![image-20240620214307906](software-engineer/image-20240620214307906.png) +![image-20240620214307906](software-engineer/image-20240620214307906.webp) 但是在增量模型中难以确定增量的粒度,同时确定所有的需求比较困难。 #### 喷泉模型 -![image-20240620214739548](software-engineer/image-20240620214739548.png) +![image-20240620214739548](software-engineer/image-20240620214739548.webp) 各个开发阶段没有特定的次序,可以并行进行,也可以在某个开发阶段中随时补充其他任何开发阶段。但是难以管理,工作计划需要随时更新。 @@ -91,11 +92,11 @@ F.L. Bauer提出,软件工程就是为了经济地获得能够在实际机器 将测试活动提前,使得瀑布模型能够驾驭风险。 -![image-20240620215022645](software-engineer/image-20240620215022645.png) +![image-20240620215022645](software-engineer/image-20240620215022645.webp) #### 螺旋模型 -![image-20240620220155962](software-engineer/image-20240620220155962.png) +![image-20240620220155962](software-engineer/image-20240620220155962.webp) 四个象限:制定计划、风险分析、实施工程、客户评价。 @@ -103,13 +104,13 @@ F.L. Bauer提出,软件工程就是为了经济地获得能够在实际机器 利用模块化思想将整个系统模块化,并在一定构件模型的支持下复用构件库中软件构件,通过组装高效率、高质量地构造软件系统。构件组装模型本质上是演化模型。 -![image-20240620224318982](software-engineer/image-20240620224318982.png) +![image-20240620224318982](software-engineer/image-20240620224318982.webp) 充分利用软件复用,提高开发效率。允许多个项目同时开发,降低了费用,提高了可维护性。但是缺乏通用的构件组装结构标准,风险较大,同时构件可重用性和系统高效性之间不易协调。 #### 快速应用开发模型 -![image-20240620224519243](software-engineer/image-20240620224519243.png) +![image-20240620224519243](software-engineer/image-20240620224519243.webp) 增量型的软件开发过程,强调极短的开发周期。 @@ -142,7 +143,7 @@ RUP由9个核心工作流构建每个迭代的主要活动。分别是6个核心 敏捷建模由一系列的价值观、原则和实践组成,是一种快速软件开发的思想代码,代表性的应用有极限编程。 -![image-20240621114540033](software-engineer/image-20240621114540033.png) +![image-20240621114540033](software-engineer/image-20240621114540033.webp) 极限编程中的需求分析要求开发人员和客户一起将各种需求变成小的需求模块(User Story),这些模块将会被组合或者分解为更小的模块,成为Story Card。 @@ -179,13 +180,13 @@ UML,即统一建模语言,是面向对象分析与设计的一种标准表 4+1视图,通过模型来描述系统的结构和行为,或者说静态结构和动态结构,以用例视图为核心描述系统的不同视图。 -![image-20240623160826903](software-engineer/image-20240623160826903.png) +![image-20240623160826903](software-engineer/image-20240623160826903.webp) #### 领域模型 领域模型是针对某一个特定领域内概念类或者对象的抽象化可视化表示。 -![image-20240623162229404](software-engineer/image-20240623162229404.png) +![image-20240623162229404](software-engineer/image-20240623162229404.webp) 在领域模型中使用类图表达概念及其关系,概念类之间的关系有关联、继承、组合、聚合和依赖等关系。 @@ -203,11 +204,11 @@ UML,即统一建模语言,是面向对象分析与设计的一种标准表 模块的内聚性是模块功能强度的度量。 -![image-20240623163647935](software-engineer/image-20240623163647935.png) +![image-20240623163647935](software-engineer/image-20240623163647935.webp) 模块的耦合性是针对模块之间连接紧密程度的度量。 -![image-20240623170058679](software-engineer/image-20240623170058679.png) +![image-20240623170058679](software-engineer/image-20240623170058679.webp) 面向对象的设计原则: diff --git a/YaeBlog/source/posts/software-engineer/image-20240620211321957.png b/YaeBlog/source/posts/software-engineer/image-20240620211321957.png deleted file mode 100644 index d5e6f36..0000000 --- a/YaeBlog/source/posts/software-engineer/image-20240620211321957.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9feaffe8bb9531f3d7dcd49b836fe2615f43a32c1833a3e95f17ffd6c109db31 -size 134202 diff --git a/YaeBlog/source/posts/software-engineer/image-20240620211321957.webp b/YaeBlog/source/posts/software-engineer/image-20240620211321957.webp new file mode 100644 index 0000000..87d088e --- /dev/null +++ b/YaeBlog/source/posts/software-engineer/image-20240620211321957.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4b2697e6eb8393a0d6fc9a7b7a0c5a8b6fcf1eaa41bff77a797d76b966159fc5 +size 21830 diff --git a/YaeBlog/source/posts/software-engineer/image-20240620212101864.png b/YaeBlog/source/posts/software-engineer/image-20240620212101864.png deleted file mode 100644 index adae8d9..0000000 --- a/YaeBlog/source/posts/software-engineer/image-20240620212101864.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:682ca3ab11829c8071189772060837063cbb62b5fcfde848aa71a15280cfa091 -size 190854 diff --git a/YaeBlog/source/posts/software-engineer/image-20240620212101864.webp b/YaeBlog/source/posts/software-engineer/image-20240620212101864.webp new file mode 100644 index 0000000..38bd965 --- /dev/null +++ b/YaeBlog/source/posts/software-engineer/image-20240620212101864.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:97fa916111246230e28cfc64fcf6fbba2afc2e00924198f2fda575d37a84fda2 +size 30260 diff --git a/YaeBlog/source/posts/software-engineer/image-20240620214307906.png b/YaeBlog/source/posts/software-engineer/image-20240620214307906.png deleted file mode 100644 index 626f115..0000000 --- a/YaeBlog/source/posts/software-engineer/image-20240620214307906.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a244a26879b14d0dc35daf6218305d2fd96a822c77999bf36404904e6a9e394a -size 273406 diff --git a/YaeBlog/source/posts/software-engineer/image-20240620214307906.webp b/YaeBlog/source/posts/software-engineer/image-20240620214307906.webp new file mode 100644 index 0000000..40b2249 --- /dev/null +++ b/YaeBlog/source/posts/software-engineer/image-20240620214307906.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a4bbaf9c565fde3742a8dd345596ff6abe38fa116233cd3fc96702e48f9f858 +size 44954 diff --git a/YaeBlog/source/posts/software-engineer/image-20240620214739548.png b/YaeBlog/source/posts/software-engineer/image-20240620214739548.png deleted file mode 100644 index 50c2977..0000000 --- a/YaeBlog/source/posts/software-engineer/image-20240620214739548.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2fbce72d6f07c49345b1613b1ac4d9d0d7546fa8c5688c4dff923d115e5788ce -size 108027 diff --git a/YaeBlog/source/posts/software-engineer/image-20240620214739548.webp b/YaeBlog/source/posts/software-engineer/image-20240620214739548.webp new file mode 100644 index 0000000..a859714 --- /dev/null +++ b/YaeBlog/source/posts/software-engineer/image-20240620214739548.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5297367eab21bfd75cfa6344fa0f5f7d0dcc8bef5223216ab9542020f5a01af3 +size 50498 diff --git a/YaeBlog/source/posts/software-engineer/image-20240620215022645.png b/YaeBlog/source/posts/software-engineer/image-20240620215022645.png deleted file mode 100644 index 8f1cec5..0000000 --- a/YaeBlog/source/posts/software-engineer/image-20240620215022645.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:feb20813948235d1dca857baf94dbf1212729b18db289212b55cacf9ae92dc74 -size 113775 diff --git a/YaeBlog/source/posts/software-engineer/image-20240620215022645.webp b/YaeBlog/source/posts/software-engineer/image-20240620215022645.webp new file mode 100644 index 0000000..a75f89e --- /dev/null +++ b/YaeBlog/source/posts/software-engineer/image-20240620215022645.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d46328f2e4f3e91dbcaaa880f7b02d847254668a481c301ea4ba04718d12b88 +size 63100 diff --git a/YaeBlog/source/posts/software-engineer/image-20240620220155962.png b/YaeBlog/source/posts/software-engineer/image-20240620220155962.png deleted file mode 100644 index cef4bbe..0000000 --- a/YaeBlog/source/posts/software-engineer/image-20240620220155962.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0b35bb450ffbe93bfd8d3d752fcce55b1bf7116f220e1eee5ba275097d67ce30 -size 194548 diff --git a/YaeBlog/source/posts/software-engineer/image-20240620220155962.webp b/YaeBlog/source/posts/software-engineer/image-20240620220155962.webp new file mode 100644 index 0000000..93f9a1b --- /dev/null +++ b/YaeBlog/source/posts/software-engineer/image-20240620220155962.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e232c96e9826a39a2123d6048de17b6d3c1d911f63c03c7618c5454e0621588e +size 51084 diff --git a/YaeBlog/source/posts/software-engineer/image-20240620224318982.png b/YaeBlog/source/posts/software-engineer/image-20240620224318982.png deleted file mode 100644 index 1f4f278..0000000 --- a/YaeBlog/source/posts/software-engineer/image-20240620224318982.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:faf61882914e3fab1b02847bedfc5482561e871644693d630efdc8b783b5e7d4 -size 119180 diff --git a/YaeBlog/source/posts/software-engineer/image-20240620224318982.webp b/YaeBlog/source/posts/software-engineer/image-20240620224318982.webp new file mode 100644 index 0000000..dcb50de --- /dev/null +++ b/YaeBlog/source/posts/software-engineer/image-20240620224318982.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:84698ab4aacdb986e6f74a30f95e894e041821f40401f77ce67b11a57528bcbf +size 63542 diff --git a/YaeBlog/source/posts/software-engineer/image-20240620224519243.png b/YaeBlog/source/posts/software-engineer/image-20240620224519243.png deleted file mode 100644 index a898b5d..0000000 --- a/YaeBlog/source/posts/software-engineer/image-20240620224519243.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e4334f70d148d512df0abea0eadc553a1f7d7dc9a923faac6fdb6ad581f63618 -size 190877 diff --git a/YaeBlog/source/posts/software-engineer/image-20240620224519243.webp b/YaeBlog/source/posts/software-engineer/image-20240620224519243.webp new file mode 100644 index 0000000..70d5e47 --- /dev/null +++ b/YaeBlog/source/posts/software-engineer/image-20240620224519243.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c5d2cc95f6aea29c53f517a968a4a21f69cd10c9b8e2a350ee6d3bb4a21a1754 +size 26200 diff --git a/YaeBlog/source/posts/software-engineer/image-20240621114540033.png b/YaeBlog/source/posts/software-engineer/image-20240621114540033.png deleted file mode 100644 index ec7791d..0000000 --- a/YaeBlog/source/posts/software-engineer/image-20240621114540033.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a8ae17c7517b83ed4429ce148ebfd60595ea94127405117af34bec316abe4956 -size 172404 diff --git a/YaeBlog/source/posts/software-engineer/image-20240621114540033.webp b/YaeBlog/source/posts/software-engineer/image-20240621114540033.webp new file mode 100644 index 0000000..d3e1976 --- /dev/null +++ b/YaeBlog/source/posts/software-engineer/image-20240621114540033.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6711902df854e2b52b811a2669e5d1257d4dec0b05e9fcacff98ea15f8b0cc62 +size 37034 diff --git a/YaeBlog/source/posts/software-engineer/image-20240623160826903.png b/YaeBlog/source/posts/software-engineer/image-20240623160826903.png deleted file mode 100644 index cb255b4..0000000 --- a/YaeBlog/source/posts/software-engineer/image-20240623160826903.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4c375a4e5fe9910ee9263a1878c43c557e92cbf4d88a35af01e7b5d2e2d1d010 -size 155772 diff --git a/YaeBlog/source/posts/software-engineer/image-20240623160826903.webp b/YaeBlog/source/posts/software-engineer/image-20240623160826903.webp new file mode 100644 index 0000000..3f0ba5e --- /dev/null +++ b/YaeBlog/source/posts/software-engineer/image-20240623160826903.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:719075736d61689f9a62b5fc4726ab1a5fed84c95513a7946745b7fbce7b001f +size 25908 diff --git a/YaeBlog/source/posts/software-engineer/image-20240623162229404.png b/YaeBlog/source/posts/software-engineer/image-20240623162229404.png deleted file mode 100644 index 74c7155..0000000 --- a/YaeBlog/source/posts/software-engineer/image-20240623162229404.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:87403c9ee1023bf2442d7aa095083f12136d56872733dbe565202487293bea2a -size 330278 diff --git a/YaeBlog/source/posts/software-engineer/image-20240623162229404.webp b/YaeBlog/source/posts/software-engineer/image-20240623162229404.webp new file mode 100644 index 0000000..3b1b77f --- /dev/null +++ b/YaeBlog/source/posts/software-engineer/image-20240623162229404.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a6204468dafff77a9498f44d972cd743b109aa4c62618325b83c8bd94714eb6 +size 40468 diff --git a/YaeBlog/source/posts/software-engineer/image-20240623163647935.png b/YaeBlog/source/posts/software-engineer/image-20240623163647935.png deleted file mode 100644 index f1c700d..0000000 --- a/YaeBlog/source/posts/software-engineer/image-20240623163647935.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:51743c989c50d02e37c103a243e1afc6d922f8f231feec802cdd400f331598e1 -size 146135 diff --git a/YaeBlog/source/posts/software-engineer/image-20240623163647935.webp b/YaeBlog/source/posts/software-engineer/image-20240623163647935.webp new file mode 100644 index 0000000..23be7f8 --- /dev/null +++ b/YaeBlog/source/posts/software-engineer/image-20240623163647935.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e3cf05b12b962dd28b0c2cf4d400d7f9b570eb5221477d0760c57d797986e5b +size 25066 diff --git a/YaeBlog/source/posts/software-engineer/image-20240623170058679.png b/YaeBlog/source/posts/software-engineer/image-20240623170058679.png deleted file mode 100644 index 2b84b34..0000000 --- a/YaeBlog/source/posts/software-engineer/image-20240623170058679.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2a6b024c357a128ade7ebc5f6a853c236942c05ad9461b3ca7b781dc88b9158a -size 115178 diff --git a/YaeBlog/source/posts/software-engineer/image-20240623170058679.webp b/YaeBlog/source/posts/software-engineer/image-20240623170058679.webp new file mode 100644 index 0000000..b774fc4 --- /dev/null +++ b/YaeBlog/source/posts/software-engineer/image-20240623170058679.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0602498704ee426ed4cc6458e3812ba19adde20ecaac9c5e0ce6cb757fb16a2c +size 58316 diff --git a/YaeBlog/source/posts/spring-boot-custom-authorize.md b/YaeBlog/source/posts/spring-boot-custom-authorize.md index 85736d1..c4d1a63 100644 --- a/YaeBlog/source/posts/spring-boot-custom-authorize.md +++ b/YaeBlog/source/posts/spring-boot-custom-authorize.md @@ -1,11 +1,12 @@ --- title: SpringBoot自定义注解实现权限控制 +date: 2023-07-29T15:20:02.0000000 tags: - - 技术笔记 - - Java -date: 2023-07-29 15:20:02 +- 技术笔记 +- Java --- + 如题。 @@ -131,13 +132,13 @@ public interface AuthorizeService { 然后针对每个策略实现一个认证服务: -![image-20230727175807814](spring-boot-custom-authorize/image-20230727175807814.png) +![image-20230727175807814](spring-boot-custom-authorize/image-20230727175807814.webp) > 具体实现就不在这里给出。 在注入每个服务时,使用策略枚举作为服务的名称,方便后续获得该服务实例。 -![image-20230727175955817](spring-boot-custom-authorize/image-20230727175955817.png) +![image-20230727175955817](spring-boot-custom-authorize/image-20230727175955817.webp) ### 注解和注解解析 diff --git a/YaeBlog/source/posts/spring-boot-custom-authorize/image-20230727175807814.png b/YaeBlog/source/posts/spring-boot-custom-authorize/image-20230727175807814.png deleted file mode 100644 index 29256a0..0000000 --- a/YaeBlog/source/posts/spring-boot-custom-authorize/image-20230727175807814.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:104460bc9297f7d1eb89d4bf1dc2d516bd371183c0169427af4ba47a9ac069d5 -size 34903 diff --git a/YaeBlog/source/posts/spring-boot-custom-authorize/image-20230727175807814.webp b/YaeBlog/source/posts/spring-boot-custom-authorize/image-20230727175807814.webp new file mode 100644 index 0000000..7b5cec1 --- /dev/null +++ b/YaeBlog/source/posts/spring-boot-custom-authorize/image-20230727175807814.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eea0b3896b8d71c1f795b193cf262851e2d5e1930ba977b5bec070dc1e3f5146 +size 6198 diff --git a/YaeBlog/source/posts/spring-boot-custom-authorize/image-20230727175955817.png b/YaeBlog/source/posts/spring-boot-custom-authorize/image-20230727175955817.png deleted file mode 100644 index 67320a9..0000000 --- a/YaeBlog/source/posts/spring-boot-custom-authorize/image-20230727175955817.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a5878ef72ef9f57be94a7a7fe5a02297131d87ae94b61c3a593d9d3311fff1ae -size 27551 diff --git a/YaeBlog/source/posts/spring-boot-custom-authorize/image-20230727175955817.webp b/YaeBlog/source/posts/spring-boot-custom-authorize/image-20230727175955817.webp new file mode 100644 index 0000000..45f3263 --- /dev/null +++ b/YaeBlog/source/posts/spring-boot-custom-authorize/image-20230727175955817.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c1953b390215fa766bd500b202b403ac9e20578c7f85911055d207ea06aa424b +size 17224 diff --git a/YaeBlog/source/posts/vscode-in-browser.md b/YaeBlog/source/posts/vscode-in-browser.md index a24b8af..842578c 100644 --- a/YaeBlog/source/posts/vscode-in-browser.md +++ b/YaeBlog/source/posts/vscode-in-browser.md @@ -1,10 +1,11 @@ --- title: 在浏览器中打开VSCode -date: 2021-10-30 17:16:13 +date: 2021-10-30T17:16:13.0000000 tags: - - 技术笔记 +- 技术笔记 --- + 众所周知,VSCode作为大微软家开发的开源编辑器,一经发布便受到了两广大程序员群体的欢迎。如果我们深入的了解一下VSCode,就会知道VSCode是基于Electron框架构建的Web应用程序,而Electron框架是基于Web技术来开发桌面应用程序,即VSCode只要稍加改造,就可以流畅的在浏览器中运行。那么我们如何才能在浏览器打开一个VSCode呢? 最简单的方法是在浏览器中输入[这个网址](https://vscode.dev),就可以在浏览器中打开一个VSCode Online,这个版本的VSCode可以支持打开本地的文件,并且进行编辑。不过这个编辑器并不支持大部分的插件,而且并不支持程序的编译与运行,并不是一个可以开箱即用的编辑器。那么还有什么办法可以让我们拥有一个联网即可得的个人定制化开发环境呢? @@ -53,9 +54,9 @@ cert: false ``` 在第一行,127.0.0.1代表这是本机的IP,如果要在公网上访问的话,需要将这里的IP改为0.0.0.0,后面的端口在默认的情况下是8080,你可以改成自己喜欢的端口号,在第二行的password表示采用密码进行身份验证,我们需要在第三行设置自己熟悉的密码,以方便自己的访问,当然,你把默认生成的密码背下来应该也是可以的 在进行了这些更改之后,我们再次输入code-server重启服务,如果一次顺利,我们可以看见以下的启动信息 -![启动信息](./vscode-in-browser/1.png) +![启动信息](./vscode-in-browser/1.webp) 我们可以打开浏览器,在地址栏中输入你的服务器公网IP加上你自己设置的端口号,就可以打开自己的VSCode Online界面了。 -![主界面](./vscode-in-browser/2.png) +![主界面](./vscode-in-browser/2.webp) 输入自己的设置密码,就可以开始把浏览器中的VSCode当作自己本地计算机上的VSCode使用了,不过其中的文件是位于自己的服务器上的。 >如果你和我一样使用的阿里云的服务器,可能还需要到服务器的管理界面设置安全组放行相应的端口,具体参考[这篇文章](https://help.aliyun.com/document_detail/59086.html?spm=5176.10173289.help.dexternal.4ff02e77892BZP) diff --git a/YaeBlog/source/posts/vscode-in-browser/1.png b/YaeBlog/source/posts/vscode-in-browser/1.png deleted file mode 100644 index 0523623..0000000 --- a/YaeBlog/source/posts/vscode-in-browser/1.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a74cd47bed9e46670d2b730a21fe550ea17609b552567f2a3ef8bbfc6db5a253 -size 37385 diff --git a/YaeBlog/source/posts/vscode-in-browser/1.webp b/YaeBlog/source/posts/vscode-in-browser/1.webp new file mode 100644 index 0000000..630199c --- /dev/null +++ b/YaeBlog/source/posts/vscode-in-browser/1.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:25d3c15f13764c382ec4bcaf3cbb4babec22de0ca7f8681c5e3065a7a358cf8a +size 7062 diff --git a/YaeBlog/source/posts/vscode-in-browser/2.png b/YaeBlog/source/posts/vscode-in-browser/2.png deleted file mode 100644 index c18e033..0000000 --- a/YaeBlog/source/posts/vscode-in-browser/2.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d9d048021f921128b5daef4b4b884cb40d54367c6bb2840f0ddec722946b2824 -size 53525 diff --git a/YaeBlog/source/posts/vscode-in-browser/2.webp b/YaeBlog/source/posts/vscode-in-browser/2.webp new file mode 100644 index 0000000..8a699d1 --- /dev/null +++ b/YaeBlog/source/posts/vscode-in-browser/2.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:26dd469996330f22d0c1bf26224fe6781d5ce0f05dea8d48ec28f3cc46563d0c +size 20430 diff --git a/YaeBlog/source/posts/whats-new-of-dotnet-8.md b/YaeBlog/source/posts/whats-new-of-dotnet-8.md index d551565..2fe519e 100644 --- a/YaeBlog/source/posts/whats-new-of-dotnet-8.md +++ b/YaeBlog/source/posts/whats-new-of-dotnet-8.md @@ -1,12 +1,13 @@ --- title: .Net 8中我关心的新功能 -date: 2023-11-22 21:07:03 +date: 2023-11-22T21:07:03.0000000 tags: - - 技术笔记 - - dotnet +- 技术笔记 +- dotnet --- + ## .NET 首先看看.NET 8的新增功能,参照官方文档中的[.NET 8的新增功能](https://learn.microsoft.com/zh-cn/dotnet/core/whats-new/dotnet-8)。 @@ -307,11 +308,11 @@ ab -n 10000 -c 1000 http://locallhost:5000/todos/ 测试之后的结果的如图所示: -![image-20231122100930849](./whats-new-of-dotnet-8/image-20231122100930849.png) +![image-20231122100930849](./whats-new-of-dotnet-8/image-20231122100930849.webp) 直接使用运行时运行编译出来的`dll`文件: -![image-20231122101012416](./whats-new-of-dotnet-8/image-20231122101012416.png) +![image-20231122101012416](./whats-new-of-dotnet-8/image-20231122101012416.webp) 修改项目文件和源代码,取消`System.Text.Json`使用源生成器和对于`AOT`的支持。 @@ -346,11 +347,11 @@ public record Todo(int Id, string? Title, DateOnly? DueBy = null, bool IsComplet 使用同样的命令测试得到的结果如图: -![image-20231122101142080](./whats-new-of-dotnet-8/image-20231122101142080.png) +![image-20231122101142080](./whats-new-of-dotnet-8/image-20231122101142080.webp) 可以发现几次测试的结果都比较接近,几乎可以认为`AOT`编译不会对性能产生明显的影响。虽然按照官方博客中给出的图片,`AOT`编译是有性能下降,应该是我这边测试工具的瓶颈。 -![Before and After AOT](./whats-new-of-dotnet-8/AOTOptimizations4.png) +![Before and After AOT](./whats-new-of-dotnet-8/AOTOptimizations4.webp) ### Identity API 终结点 diff --git a/YaeBlog/source/posts/whats-new-of-dotnet-8/AOTOptimizations4.png b/YaeBlog/source/posts/whats-new-of-dotnet-8/AOTOptimizations4.png deleted file mode 100644 index 713c7ac..0000000 --- a/YaeBlog/source/posts/whats-new-of-dotnet-8/AOTOptimizations4.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8c307a43534321f2e35bf61d5ee5c29fe571e3f2dc9ae23c8d3f5ebf11e350e2 -size 312444 diff --git a/YaeBlog/source/posts/whats-new-of-dotnet-8/AOTOptimizations4.webp b/YaeBlog/source/posts/whats-new-of-dotnet-8/AOTOptimizations4.webp new file mode 100644 index 0000000..b46ddc9 --- /dev/null +++ b/YaeBlog/source/posts/whats-new-of-dotnet-8/AOTOptimizations4.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5b440e741b2aa0a0d302a5137898cf909fe0999840e6776403d0ec71aec6a9a8 +size 74832 diff --git a/YaeBlog/source/posts/whats-new-of-dotnet-8/image-20231122100930849.png b/YaeBlog/source/posts/whats-new-of-dotnet-8/image-20231122100930849.png deleted file mode 100644 index e527a83..0000000 --- a/YaeBlog/source/posts/whats-new-of-dotnet-8/image-20231122100930849.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6ad8ef505acf3d492b886658924ab6db8cf889ba5a43207c89f1bae77b52501b -size 76115 diff --git a/YaeBlog/source/posts/whats-new-of-dotnet-8/image-20231122100930849.webp b/YaeBlog/source/posts/whats-new-of-dotnet-8/image-20231122100930849.webp new file mode 100644 index 0000000..caaca4c --- /dev/null +++ b/YaeBlog/source/posts/whats-new-of-dotnet-8/image-20231122100930849.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:59b34d52384b2bdfd7b0e46a6d32cca1256eec56dbf3968eb9d35b174748bfb6 +size 13238 diff --git a/YaeBlog/source/posts/whats-new-of-dotnet-8/image-20231122101012416.png b/YaeBlog/source/posts/whats-new-of-dotnet-8/image-20231122101012416.png deleted file mode 100644 index d937496..0000000 --- a/YaeBlog/source/posts/whats-new-of-dotnet-8/image-20231122101012416.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e67ea7e7349e2805c6ef74c64a4121bd06ec50875ece402827ff40f640f2d2de -size 75303 diff --git a/YaeBlog/source/posts/whats-new-of-dotnet-8/image-20231122101012416.webp b/YaeBlog/source/posts/whats-new-of-dotnet-8/image-20231122101012416.webp new file mode 100644 index 0000000..04c452f --- /dev/null +++ b/YaeBlog/source/posts/whats-new-of-dotnet-8/image-20231122101012416.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:40a5125c6bb0860ee004c404d03d843865020fbdbcf9bdcbc8aec743f7eb91be +size 12984 diff --git a/YaeBlog/source/posts/whats-new-of-dotnet-8/image-20231122101142080.png b/YaeBlog/source/posts/whats-new-of-dotnet-8/image-20231122101142080.png deleted file mode 100644 index 5752bbd..0000000 --- a/YaeBlog/source/posts/whats-new-of-dotnet-8/image-20231122101142080.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:086d2b6fb4c74ab1986cd23ca4e2bd8d4b2922530a19415b463c80a6b5c5b5fe -size 74524 diff --git a/YaeBlog/source/posts/whats-new-of-dotnet-8/image-20231122101142080.webp b/YaeBlog/source/posts/whats-new-of-dotnet-8/image-20231122101142080.webp new file mode 100644 index 0000000..a71188a --- /dev/null +++ b/YaeBlog/source/posts/whats-new-of-dotnet-8/image-20231122101142080.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:72e444663b11307e6611b134f6133e5c3a918b390703542b509cf518ce4352e5 +size 13014 diff --git a/YaeBlog/source/posts/wsl-setup-csapp.md b/YaeBlog/source/posts/wsl-setup-csapp.md index 9b2c144..5641470 100644 --- a/YaeBlog/source/posts/wsl-setup-csapp.md +++ b/YaeBlog/source/posts/wsl-setup-csapp.md @@ -1,12 +1,12 @@ --- title: 利用WSL设置CSAPP实验环境 +date: 2022-09-03T19:02:58.0000000 tags: - - 技术笔记 - - Linux -typora-root-url: wsl-setup-csapp -date: 2022-09-03 19:02:58 +- 技术笔记 +- Linux --- + `CSAPP`这本书为自学的学生们提供了不少的`LAB`供大家在联系中提高,但是这些`LAB`的编写普遍需要一个`Linux`的实验环境,但是目前大多数人手中的环境都是`Windows`平台,没有办法原生的运行这些`LAB`。在以前的实践中,这个问题往往是通过安装虚拟机来解决的,但是现在我们有了更好的解决方案——`Windows Subsystem for Linux`,简称`WSL`。 @@ -29,7 +29,7 @@ wsl --install 回车,等待所有的进度条都走完,重新启动系统。 -![设置的画面](1.png) +![设置的画面](1.webp) 在重启完成之后,Ubuntu系统会自动启动并完成一系列的配置,在其中需要你为这个系统设置一个用户。输入这个用户的名称和密码即可。 @@ -59,7 +59,7 @@ sudo apt update 测试换源是否成功。 -![证书错误](2.png) +![证书错误](2.webp) 如果在换源的过程中报错`Certificate verification failed`,可以将配置文件中的所有`https`更改为`http`来临时解决。 @@ -160,7 +160,7 @@ gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1) 如果遇到报错,部分头文件未找到: -![Error](3.png) +![Error](3.webp) 不要慌张,这是正常的。 diff --git a/YaeBlog/source/posts/wsl-setup-csapp/1.png b/YaeBlog/source/posts/wsl-setup-csapp/1.png deleted file mode 100644 index 0b59632..0000000 --- a/YaeBlog/source/posts/wsl-setup-csapp/1.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a392a744186b24dcb0b2fb78ad6d7ca2575df3be59fd229076159353394421c7 -size 377521 diff --git a/YaeBlog/source/posts/wsl-setup-csapp/1.webp b/YaeBlog/source/posts/wsl-setup-csapp/1.webp new file mode 100644 index 0000000..63f928a --- /dev/null +++ b/YaeBlog/source/posts/wsl-setup-csapp/1.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa53cc3c0ea32b6eb58619436b78a3fc786498b8723fc27d350dd1b3f986a5f4 +size 27920 diff --git a/YaeBlog/source/posts/wsl-setup-csapp/2.png b/YaeBlog/source/posts/wsl-setup-csapp/2.png deleted file mode 100644 index 796829e..0000000 --- a/YaeBlog/source/posts/wsl-setup-csapp/2.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0637be96b0f33b85cb415a185f6c46d07d46e9938a1b73deb50494b0b8ecdf11 -size 179838 diff --git a/YaeBlog/source/posts/wsl-setup-csapp/2.webp b/YaeBlog/source/posts/wsl-setup-csapp/2.webp new file mode 100644 index 0000000..caf9c78 --- /dev/null +++ b/YaeBlog/source/posts/wsl-setup-csapp/2.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c860be85e00aa27a9b776f9ea8041b64b514113adbad53057a22e4a2f81f8af5 +size 182264 diff --git a/YaeBlog/source/posts/wsl-setup-csapp/3.png b/YaeBlog/source/posts/wsl-setup-csapp/3.png deleted file mode 100644 index 0d835e1..0000000 --- a/YaeBlog/source/posts/wsl-setup-csapp/3.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:17b13932a250644377d0a4692ec15b68b0d469da2f5743fbb861e4e98f0e389f -size 106136 diff --git a/YaeBlog/source/posts/wsl-setup-csapp/3.webp b/YaeBlog/source/posts/wsl-setup-csapp/3.webp new file mode 100644 index 0000000..56967d9 --- /dev/null +++ b/YaeBlog/source/posts/wsl-setup-csapp/3.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:53d6b2e66cec1cc60f0c194e09d05ec987eea42527c554e52496366deccfb618 +size 18364