分类: 技术实践

Ascend C入坑笔记

初始AscendC 本文记录笔者在杭研学习Ascend C的所得和体会。本次学习AscendC主要涵盖从基础概念、产品定位到AscendC算子开发。 AI Core架构 物理结构 昇腾AI处理器架构图如下: AI Core是昇腾AI处理器的核心,采用达芬奇架构。 达芬奇架构的主要部分有: 计算单元:

博客搬迁踩坑指南:实现markdown图片的自动化替换

需求来源 Hexo博客难以长期维护 博客,是学习计算机科学的同学所必备的网站,好的博文能够体现一个人的能力和思考水平,一个长期维护的博客更是一个人是否拥有长期坚持品质的重要证明。毕竟,如果你能长期维护好一个博客,那么由你负责的项目大概率不会被你中途放弃。 说起博客,我自22年11月起搭建起了个人博客

部署Nacos也能踩坑?Nacos2.3.1部署踩坑记录

前言 笔者最近在写一个微服务的项目,在技术选型方面采用了Dubbo作为RPC框架,注册中心选用了Nacos,在部署Nacos的时候,本着怎么方便怎么来的缘故,我选用了Nacos Docker进行部署,却没想到在鉴权上也踩了一些坑,特写一篇文章记录一下。 Nacos Docker部署 Nacos部署

实践札记:内网穿透Frp踩坑

本文针对物联网项目中华为云IoT平台数据需转发至本地Web服务的需求,探讨了内网穿透解决方案。作者排除了直接部署云服务器和转发脚本方案后,重点实践了内网穿透技术。过程中先后尝试了ngrok、CloudFlare tunnel等工具,遭遇了访问限制、带宽不足、URL格式错误等问题。最终采用frp(高性能反向代理工具)实现成功穿透,通过在云服务器和本地分别部署frps和frpc服务,配置HTTP代理使公网可通过自定义域名访问本地服务。文章详细分享了frp的配置要点、systemd管理最佳实践,为类似场景提供了可复用的解决方案。

JVM基础:内存结构与垃圾回收

JVM内存结构 Java运行时数据区: 线程不共享:程序计数器、JVM栈、本地方法栈 线程共享:方法区、堆区 不属于Java运行时内存:直接内存 PC: PC的作用是控制指令的执行。 多线程下,需要通过PC记录CPU切换前的执行位置。程序计数器只会保存固定长度的内存地址,不会发生内存溢出。 程序员无

JVM基础:字节码文件与类加载器

认识JVM JVM的作用: 解释和运行:将字节码指令解释为机器码。 内存管理:自动分配对象和方法内存;GC 即时编译JIT:对热点代码做优化(将热点代码的机器码保存到内存中,下次直接调用) JVM规范: 规定字节码文件的定义、类和接口的加载和初始化、指令集 JVM规范并不是针对Java语言设计的要求

Docker实践:部署前后端分离项目

前言 笔者最近正在写一个前后端分离项目,涉及的技术栈比较传统,就是SpringBoot+Vue3。 整个项目需要部署到一个新的Linux服务器,鉴于配置各种环境和依赖大概率要碰一鼻子的灰,我使用了Docker进行环境的部署。 这个过程可以顺带复习一下很久没用的Docker命令,经过一番折腾和踩坑后,

实验:伯克利CS61B-BSTMap实现

本文记录伯克利的数据结构与算法课程 -- CS61B 21spring中Lab7的实现思路。 该Lab是实现一个基于二叉搜索树(BST)的Map。 完整代码可以参考我的GitHub仓库。 BSTMap需要实现的接口 /** Removes all of the mappings from this

Docker基础学习

写在前面: 应用部署很麻烦?哪里麻烦了啊!这么多年都是这样搞得,不要睁着眼睛乱说,有的时候自己找找原因,这么多年Linux命令敲得熟不熟,有没有认真工作?(手动狗头) 需求:我最近开发了一个前后端分离的GPU预约系统,这个系统涉及Redis数据库、MySQL数据库、Java环境、Nginx,这么多的

踩坑:如何使用VsCode调试C++程序

本文为数据结构与算法实验课中VS Code C++ Debug配置的回顾教程。作者因久未使用VS Code进行C++开发(平时多用命令行),需通过本次实验重新掌握配置流程。主要步骤包括:下载VS Code及MinGW编译器(选择x86_64-win32-seh版本),配置MinGW的bin目录到系统环境变量,安装Chinese和C/C++插件并重启。核心在于配置三个JSON文件(c_cpp_properties.json、launch.json、task.json),需将文件中的MinGW路径替换为本地实际路径。完成配置后即可进行C++程序Debug。文中提及,若觉得麻烦可考虑使用JetBrain Clion(学生认证免费)。