为什么 .NET 的反射这么慢?

大家都知道.NET的反射很慢,但是为什么会出现这种情况呢?这篇文章会带你寻找这个问题的真正原因。CLR 类型系统的设计目标原因之一是,在设计的时候反射本身就不是以高性能为目标的,可以参考Type System Overview – ‘Design Goals and Non-goals’(类型系统概览 – ‘设计目标和非目标’):目标运行时通过快速执行(非反射)代码访问需要的信息。编译时直接访问所...
编程开发 .NET开发

谷歌 HTML/CSS 规范

背景这篇文章定义了 HTML 和 CSS 的格式和代码规范,旨在提高代码质量和协作效率。通用样式规范协议省略图片、样式、脚本以及其他媒体文件 URL 的协议部分(http:,https:),除非文件在两种协议下都不可用。这种方案称为 protocol-relative URL,好处是无论你是使用 HTTPS 还是 HTTP 访问页面,浏览器都会以相同的协议请求页面中的资源,同时可以节省一部分字节。...
WEB开发 编程开发

优化 iOS 程序性能的 25 个方法

1. 用ARC管理内存ARC(Automatic ReferenceCounting, 自动引用计数)和iOS5一起发布,它避免了最常见的也就是经常是由于我们忘记释放内存所造成的内存泄露。它自动为你管理retain和release的过程,所以你就不必去手动干预了。忘掉代码段结尾的release简直像记得吃饭一样简单。而ARC会自动在底层为你做这些工作。除了帮你避免内存泄露,ARC还可以帮你提高性能...
编程开发 iOS开发

Android 使用 Socket 对大文件进行加密传输

前言数据加密,是一门历史悠久的技术,指通过加密算法和加密密钥将明文转变为密文,而解密则是通过解密算法和解密密钥将密文恢复为明文。它的核心是密码学。数据加密目前仍是计算机系统对信息进行保护的一种最可靠的办法。它利用密码技术对信息进行加密,实现信息隐蔽从而起到保护信息的安全的作用。项目中使用Socket进行文件传输过程时,需要先进行加密。实现的过程中踏了一些坑,下面对实现过程进行一下总结。DES加密由...
Android开发 编程开发

Spring 8:一些常用的 Spring Bean 扩展接口

前言Spring是一款非常强大的框架,可以说是几乎所有的企业级Java项目使用了Spring,而Bean又是Spring框架的核心。Spring框架运用了非常多的设计模式,从整体上看,它的设计严格遵循了OCP—-开闭原则,即:1、保证对修改关闭,即外部无法修改Spring整个运作的流程2、提供对扩展开放,即可以通过继承、实现Spring提供的众多抽象类与接口来改变类加载的行为开卷有益,阅读Spri...
编程开发 JAVA开发

Spring 核心框架体系结构

很多人都在用spring开发java项目,但是配置maven依赖的时候并不能明确要配置哪些spring的jar,经常是胡乱添加一堆,编译或运行报错就继续配置jar依赖,导致spring依赖混乱,甚至下一次创建相同类型的工程时也不知道要配置哪些spring的依赖,只有拷贝,其实,当初我就是这么干的!spring的jar包只有20个左右,每个都有相应的功能,一个jar还可能依赖了若干其他jar...
JAVA开发 编程开发

为什么 Java 8 中不再需要 StringBuilder 拼接字符串

在Java开发者中,字符串的拼接占用资源高往往是热议的话题.让我们深入讨论一下为什么会占用高资源。在Java中,字符串对象是不可变的,意思是它一旦创建,你就无法再改变它。所以在我们拼接字符串的时候,创建了一个新的字符串,旧的被垃圾回收器所标记。如果我们处理上百万的字符串,然后,我们就会生成百万的额外字符串被垃圾回收器处理。虚拟机底层在拼接字符串时执行了众多操作。拼接字符串最直接的点操作(dot o...
JAVA开发 编程开发

实用 JVM 参数总结

摘要: HotSpot JVM 有许多可用的参数选项,在这里我总结了一些实用的JVM参数,包括堆大小调整、监控、JIT优化等部分HotSpot JVM 有许多可用的参数选项,也许太多了,有时候我们会将一些正在寻找的或者“魔法式”的选项添加在我们的应用上,导致非常可怕的后果。我认为这种情况不应该存在,应该有一些选项能帮助我们监控应用或者调整应用的某些部分。为了获得完整的JVM参数列表,我们不仅可以参...
JAVA开发 编程开发

Android 性能监控实现原理

涉及知识点:APM, Java Agent, plugin, bytecode, asm, InvocationHandler, smail一. 背景介绍APM : 应用程序性能管理。 2011年时国外的APM行业 NewRelic 和 APPDynamics 已经在该领域拔得头筹,国内近些年来也出现一些APM厂商,如: 听云, OneAPM, 博睿(bonree) 云智慧,阿里百川码力。 (据分...
编程开发 Android开发

CSS 继承深度解析

我酷爱模块化设计。长期以来我都热衷于将网站分离成组件,而不是页面,并且动态地将那些组件合并到界面上。这种做法灵活,高效并且易维护。但是我不想我的设计看上去是由一些不相关的东西组成的。我是在创造一个界面,而不是一张超现实主义的照片。很幸运的是,已经有一项叫做 CSS 的技术,就是特意设计用来解决这个问题的。使用 CSS,我就可以在 HTML 组件之间到处传递样式,从而以最小的代价来保证一致性的设计。...
编程开发 WEB开发