- 博客(17)
- 资源 (1)
- 收藏
- 关注
原创 在windows 7上是否可以运行win 10的应用
一种可以解决"无法定位程序输入点IsWow64Process2于动态链接库KERNEL32.dll"的想法
2022-06-01 10:41:17 3467
原创 开发语言如何解决循环引用问题?
注意这是不是站在使用开发语言的角度,而是站在开发开发语言的角度。这是解决引用计数类内存管理的开发语言的循环引用问题,不是gc类的。能解决但不一定会被采用,因为有得就有失。思路把引用计数改成引用线程链表,线程内变量的最大的作用域结束时可以释放变量,若变量不存在其他引用的线程则可以直接释放,否则就由其他线程释放。缺点内存使用增加,释放的时候存在并发需要使用锁,创建线程的时候需要把变量的所有子对象的引用线程更新一下。结果只要禁止循环引用,那么还是使用引用计数的内存管理会更好,简单直接、快速高
2022-05-13 11:11:14 395
原创 flutter让TextField自动高度
实现功能:让TextField在没有内容时候使用自身高度预设高度(最小行),内容比较多的时候就允许TextField使用屏幕剩余最大高度,内容再多一点就滚动显示。Flexible( child: TextField( decoration: InputDecoration( label: Text("内容"), ), maxLines: null, minLines: 3, ),),...
2022-02-21 09:55:46 2369
原创 缩减string在内存中的占用
方案一下全部都不好实现,但确实是有效,或许要极限控制内存的时候才会用到。编译器把重复的字符串合并。字符串不应该在代码段中出现,全部动态加载,减少在内存中驻留。由开发语言设计者提供一种不保存key原值只有key的hash值的hashmap。...
2021-12-28 16:50:03 296
原创 typescript的Hashmap的简单实现
export class Hashmap<V>{ public map: { [index: string]: V } = {}; public put(key: string, value: V) { this.map[key] = value; } public get(key: string): V { return this.map[key]; } public remove(key: string) { delete this.map[key]; }
2021-11-29 11:39:42 365
原创 解决各路adb.exe冲突问题
问题如果有android sdk 和android模拟器,就有可能出现adb.exe冲突,各个应用都想启动他自己的adb.exe,引发一些奇怪的问题。解决1.原理就是让所有的应用都使用同一个adb.exe。下载 (提取码1111)或自行编译#include<stdio.h>#include<stdlib.h>#include <windows.h>#include <io.h>void main(int argc, char * arg
2021-11-18 16:20:12 4020 3
原创 提升web app性能的一种方法
原理常规的web app 都会在android壳里创建web server 用于本地html等文件获取。这个web server 不是必要的,那些http请求也是不必要的,可以拦截浏览器的get请求代替。然后就没有web server的开销,没有了真实的http请求创建及解析开销。因为是拦截,所以可以把原来的域名(localhost)改成api的域名,然后跨域问题也没有了。操作过程浏览器拦截get请求,原启动路径假设为http://localhost/index.html 改成https://api
2021-11-18 10:21:35 1450
原创 关于既省内存而又快速比较string的一种思路
思路:目前我所知的开发语言中对string处理都是独立的、不唯一,如果每个string对象都是唯一的,不管从哪里加载只要内容一样,引用就是相同的,那么做区分大小写的字符串比较的时候就可以只比较他们的引用是否相同就可以了。试想一下,这样做的话,字符串比较速度极快,内存占用也会减少(但需要额外的引用管理和同步)。题外:为什么大脑可以记忆那么多事情,容量很大?为什么相似的东西容易混淆、覆盖?可能是因为大脑是使用唯一存储策略:因为唯一存储所以减少冗余,可以存更多。记忆事件时候,人被抽象为某个唯一个体,所以不需要像
2021-09-03 10:13:21 95
原创 C# 字节数组 byte[] 快速比较算法
注:代码原创转载或使用请标明出处。目前C#最高版本net6 preview 7,我没有找到快速比较两个字节数组 byte[]的api,如若谁知道请在下方留言,谢谢。在没有使用某些cpu特有的比较指令实现的纯C#的快速比较byte[]的思路:把byte[]转成byte*,然后利用64位cpu一次可比较64位数据的特点把byte强制转换成long进行比较理论上速度可以快一倍。原本32位程序应该使用int比较,但经测试发现在64系统上32位程序使用long会比使用int*快一点。代码如下://需要在项
2021-09-02 11:20:56 4574 1
原创 优化html app(带浏览器壳)的图片获取显示
问题描述:很多封浏览器壳的html app保存显示图片都是使用“data:image/png;base64,……”格式存储或放到img标签的src里面显示。在小图片少数量的情况没有问题,但一多起来就容易引发mobile端的OOM,甚至直接闪退。原因:src里面放的字符串是base64,是整个图片的blob 占的空间的1.5倍的字符串,而img 显示的时候要解析src为图片对象,这个占空间更大。src的值不会因为解析完就会释放,有可能会一直存在,依赖浏览器引擎和src的值是否在其他地方存在(一般在数据源的地
2021-08-04 15:58:57 189 1
原创 关于android屏幕适配的多套图片合理处理方式
关于android图片大小合理处理方式现况解决现况传统图片处理都是制作多套图片大小已适应各种屏幕尺寸,但这样并不能涵括所有的屏幕设备,这样做也是不优雅的。虽然有工具帮忙缩放,但这些图片在安装包里面都是多余的。解决一个合理的优雅的处理方式:安装包里只保留最清晰版本的图片,其他图片根据控件显示大小需求加载缓存缩放后的图片(不能使用图片决定控件大小,因为这是不合理的)。...
2021-07-22 09:26:10 207 1
原创 C# 闭包,闭包原理
简单的闭包private static void Main(string[] args){ Func<int> a = getFun1(); a(); //输出1 a(); //输出2}private static Func<int> getFun1(){ int b = 1; return delegate { Console.WriteLine(b); return b++; };}使用ILSpy打开编译后的文件,C#选择1.0 / VS
2021-04-01 16:09:21 420
原创 面对对象开发语言的性能是可能超过C
面对对象开发语言的性能是可能超过C为什么?C语言编译后传参是通过压栈或寄存器。而C#(以此为列)的this执行时一般是通过寄存器传值,但如果是在同一个类里方法1调用方法2,完全可以去掉在方法1 call 方法2时候的this传值,这里就少了备份/设置/恢复this过程,说明面向对象语言的性能是可以超过C。...
2021-03-11 10:47:23 77 3
regdllview
2008-07-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人