开发平台smobiler平台net

谁说.NET没有GC调优?只改一行代码就让程序不再占用内存

经常看到有群友调侃“为什么搞Java的总在学习JVM调优?那是因为Java烂!我们.NET就不需要搞这些!”真的是这样吗?今天我就用一个案例来分析一下。 昨天,一位学生问了我一个问题:他建了一个默认的ASP.NET Core Web API的项目,也就是那个WeatherForecast的默认项目模 ......
一行 内存 代码 程序 NET

.net6&7中如何优雅且高性能的使用Json序列化

.net中的SourceGenerator让开发者编可以写分析器,在项目代码编译时,分析器分析项目既有的静态代码,允许添加源代码到GeneratorExecutionContext中,一同与既有的代码参与编译。这种技术其实是把一些运行时才能去获取程序集相关资源的方式提前到编译前了。 .net6开始, ......
序列 高性能 net6 Json net

【开源】全网首个支持国密算法的微信支付 C#/.NET SDK(附 SM2/SM3/SM4 跨语言联调的踩坑要点)

前言 前文回顾:《【开源】这可能是封装微信 API 最全的 C#/.NET SDK 了》 自 2021 年 8 月公开发布后,本项目已开源一年有余。在此期间,受到了很多开发者的关注和使用,也接收了很多热心开源的开发者给予的帮助,无论是上报了缺陷或建议,还是发起了 PR,亦或是在社群内回答他人的提问, ......
全网 算法 要点 SM 语言

Android开发之线程间通信

Android开发之线程间通信 当我们的软件启动的时候,计算机会分配进程给到我们运行的程序,在进程中包含多个线程用于提高软件运行速度。 在android网络请求中,我们知道在日常开发中不能在子线程中跟新ui,否则报错Only the original thread that created a vi ......
线程 Android

移动 VR 开发时要避免的 PC 渲染技术

更新:本文是为 Quest 1 开发人员编写的。虽然 Quest 2 建立在相同的架构上,但现在更容易为阴影贴图(以及其他需要从先前渲染过程中生成的纹理读取的简单技术)做预算。 尽管移动芯片组可以支持下面概述的大多数技术,但我们强烈建议你不要这样做。不过,这并不总是一成不变的规则,因为我有看到开发者 ......
技术 VR PC

Multipass,多平台本地轻量级Linux体验!

Multipass 是由Ubuntu官方提供,在Linux,MacOS和Windows上快速生成Ubuntu虚拟机的工具。它提供了一个简单但功能强大的CLI,可让我们在本地快速进入Ubuntu系统环境并使用Linux命令,亦可以在本地计算机创建自己的迷你型云服务器。总的来说就是在本地创建Ubuntu... ......
轻量 轻量级 Multipass Linux 平台

记一次 .NET 某工控软件 内存泄露分析

一:背景 1.讲故事 上个月 .NET调试训练营 里的一位老朋友给我发了一个 8G 的dump文件,说他的程序内存泄露了,一时也没找出来是哪里的问题,让我帮忙看下到底是怎么回事,毕竟有了一些调试功底也没分析出来,说明还是有一点复杂的,现实世界中的dump远比课上说的复杂的多。 还是那句话,找我分析是 ......
内存 软件 NET

.NET 7 的 AOT 到底能不能扛反编译?

一:背景 1.讲故事 在B站,公众号上发了一篇 AOT 的文章后,没想到反响还是挺大的,都称赞这个东西能抗反编译,可以让破解难度极大提高,可能有很多朋友对逆向不了解,以为用 ILSpy,Reflector,DnSpy 这些工具打不开就觉得很安全,其实不然,在 OllyDbg,IDA,WinDBG 这 ......
NET AOT

记一次 .NET 某电子厂OA系统 非托管内存泄露分析

一:背景 1.讲故事 这周有个朋友找到我,说他的程序出现了内存缓慢增长,没有回头的趋势,让我帮忙看下到底怎么回事,据朋友说这个问题已经困扰他快一周了,还是没能找到最终的问题,看样子这个问题比较刁钻,不管怎么说,先祭出 WinDbg。 二:WinDbg 分析 1. 托管还是非托管泄露 一直关注这个系列 ......
电子厂 内存 系统 电子 NET

day22-web开发会话技术04

WEB开发会话技术04 14.Session生命周期 14.1生命周期说明 public void setMaxInactiveInterval(int interval):设置session的超时时间(以秒为单位),超过指定的时长,session就会被销毁。 值为正数的时候,设置session的超 ......
技术 day web 22

为什么推荐Kestrel作为网络开发框架

为什么推荐Kestrel 网络框架千千万万,在dotnet平台,我们可以直接手撸Socket,也可以基于dotnetty来开发,或者选择某些第三方类似于dotnetty的网络库,为何我要推荐Kestrel呢? 1 使用框架 网络编程是简单的,简单到大概就 new Socket(),Send()发送数 ......
框架 Kestrel 网络

京东零售大数据云原生平台化实践

导读: 今天为大家介绍京东零售大数据的云原生平台化实践,主要包括以下几大方面内容: 云原生的定义和理解 云原生相关技术的演化 京东大数据在云原生平台化上的实践 云原生应用平台的发展 分享嘉宾:刘仲伟 京东 架构师 编辑整理:张明宇 广州某银行 出品社区:DataFun 01/云原生的定义和理解 1. ......
数据 平台

基于.net C# Socket WinForm MQTT 客户端开发

1、什么是MQTT? MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极 ......
客户端 WinForm 客户 Socket MQTT

Flink SQL管理平台flink-streaming-platform-web安装搭建

文章都在个人博客网站:https://www.ikeguang.com/ 同步,欢迎访问。 最近看到有人在用flink sql的页面管理平台,大致看了下,尝试安装使用,比原生的flink sql界面确实好用多了,我们看下原生的,通过bin/sql-client.sh命令进入那个黑框,一只松鼠,对,就 ......

NET 6 实现滑动验证码(三)、接口

题外话,有网友说,这玩意根本很容易破解,确实是这样。但验证码这东西,就跟锁子很类似,防君子不防小人。验证码的发明其实是社会文明的退步。因为它阻碍了真正的使用者,却无法阻挡别有用心的人。但又有什么办法呢? 上一篇文章添加了一些基本类,本篇内容主要目的是创建一些接口类 上一节内容:NET 6 实现滑动验 ......
接口 NET

.NET 6 实现滑动验证码(二)、基本数据

上一节,介绍了滑动验证码的基本情况,也创建了一个.NET 6的工程。本节内容是创建一些基础类。 (创建基础类) 本节创建的类全部在工程的Model目录下: CaptchaData.cs CaptchaData.cs:验证码的数据类实体 namespace SlideCaptcha.Model { p ......
数据 NET

.NET 6使用ImageSharp给图片添加水印

​ .NET 6 中,使用System.Drawing操作图片,生成解决方案或打包的时候,会有警告,意思是System.Drawing仅在 'windows' 上受支持。微软官方的解释是: System.Drawing.Common NuGet 包现在被归为 Windows 特定的库。 在为非 Wi ......
水印 ImageSharp 图片 NET

学习ASP.NET Core Blazor编程系列十五——查询

在这一篇教程中我们学习如何增加查询功能,我们将在书籍列表页面中添加搜索功能,通过按“书籍名称”或“作者”来搜索书籍。 在以往经典的Web应用程序中,我们经常使用元素创建表单,在表单中添加 元素, 有一个 type 属性,用于指定输入的类型及其显示方式(作为数字、文本框、单选按钮、复选... ......
Blazor Core ASP NET

学习ASP.NET Core Blazor编程系列十三——路由(完)

除了前面三篇文章中介绍的路由方式,可以用来进行页面跳转之外,今天介绍最后一种方式,如何在代码中进行页面跳转。如果是JavaScript我们会用window.location来切换页面,Blazor为我们提供了相应的封装:NavigationManager。使用NavigationManager可以通... ......
路由 Blazor Core ASP NET

.NET 6 基于IDistributedCache实现Redis与MemoryCache的缓存帮助类

本文通过IDistributedCache的接口方法,实现Redis与MemoryCache统一帮助类。只需要在配置文件中简单的配置一下,就可以实现Redis与MemoryCache的切换。 (目录) IDistributedCache IDistributedCache 方法: |方法|说明 | ......

Python:灵活的开发环境

如果你接手了别人的代码工程,却发现对方使用的 python 版本或者依赖库都和你的环境不兼容时,怎么办?打算卸掉自己原来的那一套环境再重来吗?真麻烦! ......
环境 Python

基于.NetCore开发博客项目 StarBlog - (20) 图片显示优化

前言 我的服务器带宽比较高,博客部署在上面访问的时候几乎没感觉有加载延迟,就没做图片这块的优化,不过最近有小伙伴说博客的图片加载比较慢,那就来把图片优化完善一下吧~ 目前有两个地方需要完善 图片瀑布流 图片缩略图 图片瀑布流 关于瀑布流之前的文章有介绍: 基于.NetCore开发博客项目 StarB ......
StarBlog NetCore 项目 图片 博客

VS嵌入式开发-模拟器中使用LVGL8.3

LVGL是一个跨平台、轻量级、易于移植的图形库。也因其支持大量特性和其易于裁剪,配置开关众多,且版本升级较快,不同版本之间存在一定的差异性,相关的使用教程有一定的滞后性,由于缺少最新版本的中文教程,加上大量的教程中未注明对应的版本,初始接触的开发者往往容易中招,花费大量时间爬坑,本文特对自己的使用经... ......
模拟器 嵌入式 LVGL8 LVGL

.net 温故知新:【10】.NET ORM框架EFCore使用入门之CodeFirs、DBFirst

前言:本系列是我自己学习.net相关知识,以便跟上.net跨平台的步伐,目前工作原因基本在.net Framework4.7以下,所以才有了这一系列的学习总结,但是并不是从基本的C#语法和基础知识开始的,而是围绕.net core以后平台的重要设计和差异进行温故知新。目的在于通过要点的梳理最后串联起 ......
温故知新 框架 CodeFirs DBFirst EFCore

.NET性能优化-使用内存+磁盘混合缓存

我们回顾一下上一篇文章中的内容,有一个朋友问我这样一个问题: 我的业务依赖一些数据,因为数据库访问慢,我把它放在Redis里面,不过还是太慢了,有什么其它的方案吗? 其实这个问题比较简单的是吧?Redis其实属于网络存储,我对照下面的这个表格,可以很容易的得出结论,既然网络存储的速度慢,那我们就可以 ......
缓存 磁盘 内存 性能 NET

关于 .NET 在不同操作系统中 IO 文件路径拼接方法,升级 .NET 7 后注意到的一个知识点

.NET 现在支持跨平台这件事情已经是众所周知的特点了,虽然平台整体支持跨平台了,但是我们的代码如果真的想要实现跨平台运行其实还是有些小细节要注意的,今天想要记录分享的就是关于 文件I/O操作时路径的拼接问题。 在 Windows 环境下我们常见的路径格式如下: D:\Software\AppDat ......
知识点 路径 NET 文件 方法

.NET周报【11月第3期 2022-11-22】

国内文章 .NET Conf China 2022 第一批讲师阵容大揭秘!整个期待了! https://mp.weixin.qq.com/s/4p89hhBPw6qv-0OB_T_TOg 目光看过来 2022年12月3-4日,一场社区性质的国内规模最大的 线上线下.NET Conf 2022技术大会 ......
周报 2022 NET 11 22

.NET周报【11月第4期 2022-11-30】

国内文章 .NET 7 的 AOT 到底能不能扛反编译? https://www.cnblogs.com/huangxincheng/p/16917197.html 在B站,公众号上发了一篇 AOT 的文章后,没想到反响还是挺大的,都称赞这个东西能抗反编译,可以让破解难度极大提高,可能有很多朋友对逆 ......
周报 2022 NET 11 30

.NET性能优化-ArrayPool同时复用数组和对象

前两天在微信后台收到了读者的私信,问了一个这样的问题,由于私信回复有字数和篇幅限制,我在这里统一回复一下。读者的问题是这样的: 大佬您好,之前读了您的文章受益匪浅,我们有一个项目经常占用 7-8GB 的内存,使用了您推荐的ArrayPool以后降低到 4GB 左右,我还想着能不能继续优化,于是 du ......
数组 ArrayPool 对象 同时 性能

使用.NET7和C#11打造最快的序列化程序-以MemoryPack为例

译者注 本文是一篇不可多得的好文,MemoryPack 的作者 neuecc 大佬通过本文解释了他是如何将序列化程序性能提升到极致的;其中从很多方面(可变长度、字符串、集合等)解释了一些性能优化的技巧,值得每一个开发人员学习,特别是框架的开发人员的学习,一定能让大家获益匪浅。 简介 我发布了一个名为 ......
序列 MemoryPack 程序 NET7 NET