- 03 | 索引:如何用哈希表管理亿级对象?
_Rye_
系统性能调优散列表数据结构
上一讲我们谈到,Ptmalloc2为子线程预分配了64MB内存池,虽然增大了内存消耗,但却加快了分配速度,这就是以空间换时间的思想。在内存有限的单片机上运行嵌入式程序时,我们会压缩数据的空间占用,以时间换空间;但在面向海量用户的分布式服务中,使用更多的空间建立索引,换取更短的查询时间,则是我们管理大数据的常用手段。比如现在需要管理数亿条数据,每条数据上有许多状态,有些请求在查询这些状态,有些请求则
- go内存分配原理
终生成长者
golang面试题golang开发语言后端
文章目录前言一、基础概述1.span1.class2.span数据结构2.central3.heap二、内存分配过程三、总结golang学习面试网站前言编写过C语言程序的肯定知道通过malloc()方法动态申请内存,其中内存分配器使用的是glibc提供的ptmalloc2。除了glibc,业界比较出名的内存分配器有Google的tcmalloc和Facebook的jemalloc。二者在避免内存碎
- golang 语言 gc基础,内存分配原理
小哥(xpc)
golang数据结构操作系统golangjava数据结构
内存分配原理一、基本情况内存分配器有glibc提供的ptmalloc2,谷歌提供的tcmalloc,脸书提供的jemallocgolang中提供了内存分配器,原理与tcmalloc类似,简单说维护一块大的全局内存,每个线程维护一块小的私有内存,私有内存不足再从全局申请内存分配与GC(垃圾回收)有密切关系,所以,了解GC前需要了解内存分配的原理二、基本概念为了golang自主管理内存,先向系统申请一
- [堆利用入门]Ptmalloc2 堆中的基本函数 unlink & malloc_printerr
HAPPYers
unlinkunlink用来将一个双向链表(只存储空闲的chunk)中的一个元素取出来,可能在以下地方使用malloc从恰好大小合适的largebin中获取chunk。这里需要注意的是fastbin与smallbin就没有使用unlink,这就是为什么漏洞会经常出现在它们这里的原因。依次遍历处理unsortedbin时也没有使用unlink的。从比请求的chunk所在的bin大的bin中取chun
- CTF-PWN-堆-【前置知识】
看星猩的柴狗
CTF-PWN-堆linux
CTF-PWN-堆堆申请堆块main_areanabrk&sbrk函数mallocfreefree后topchunk堆由mallocallocrealloc函数分配chunk的前指的是地址低的,chunk的高指的是地址高的申请堆块ptmalloc2堆管理器:通俗的讲就是相当于一个”中间商”,在程序想要申请向系统申请堆空间时,这里的ptmalloc2就会申请一块很大的空间,然后把用户真正的空间部分分
- 使用mtrace追踪JVM堆外内存泄露
内存泄露jvm
原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,非公众号转载保留此声明。简介在上篇文章中,介绍了使用tcmalloc或jemalloc定位native内存泄露的方法,但使用这个方法相当于更换了原生内存分配器,以至于使用时会有一些顾虑。经过一些摸索,发现glibc自带的ptmalloc2分配器,也提供有追踪内存泄露的机制,即mtrace,这使得发生内存泄露时,可直接定位,而不需要额外安
- 剖析 stl + glibc “内存泄漏” 原因
wenfh2020
c/c++stlptmalloc2memoryleak内存泄漏
最近项目增加了一个模块,在Centos系统压测,进程一直不释放内存。因为新增代码量不多,经过排查,发现stl+glibc这个经典组合竟然有问题,见鬼了!通过调试(Centos调试glibc视频)和查阅glibc源码,好不容易才搞明白它“泄漏”的原因。问题在于:ptmalloc2内存池的fastbins快速缓存和topchunk内存返还系统的特点导致。文章来源:剖析stl+glibc“内存泄漏”原因
- 一次 Java 进程 OOM 的排查分析(glibc 篇)
我不想熬夜学Java
java算法linux面试编程语言
遇到了一个glibc导致的内存回收问题,查找原因和实验的的过程是比较有意思的,主要会涉及到下面这些:Linux中典型的大量64M内存区域问题glibc的内存分配器ptmalloc2的底层原理如何写一个自定义的mallochook动态链接库soglibc的内存分配原理(Arena、Chunk结构、bins等)malloc_trim对内存真正回收的影响gdb的heap调试工具使用jemalloc库的介
- 剖析 stl + glibc “内存泄漏” 原因
wenfh2020
最近项目增加了一个模块,在Centos系统压测,进程一直不释放内存。因为新增代码量不多,经过排查,发现stl+glibc这个经典组合竟然有问题,见鬼了!通过调试(Centos调试glibc视频)和查阅glibc源码,好不容易才搞明白它"泄漏"的原因。问题在于:ptmalloc2内存池的fastbins快速缓存和topchunk内存返还系统的特点导致。文章来源:剖析stl+glibc“内存泄漏”原因
- 利用jemalloc解决flink的内存溢出问题
滴普科技
DEEPNOVA开发者社区flink大数据bigdata
前言:遇到一个Linux系统glibc内存分配导致的OOM问题,根源是内存回收出现问题,导致碎片太多,内存无法回收,系统认为内存不够用了。涉及到以下知识点:1、Linux中典型的64M内存区域问题2、glibc内存分配器ptmalloc2的底层原理3、glibc的内存分配原理(Arean、Chunk、bins等)4、malloc_trim对内存回收的影响1、问题描述前段时间做POC,在测试的过程中
- 利用jemalloc解决flink的内存溢出问题
javaflink数据库
前言:遇到一个Linux系统glibc内存分配导致的OOM问题,根源是内存回收出现问题,导致碎片太多,内存无法回收,系统认为内存不够用了。涉及到以下知识点:1、Linux中典型的64M内存区域问题2、glibc内存分配器ptmalloc2的底层原理3、glibc的内存分配原理(Arean、Chunk、bins等)4、malloc_trim对内存回收的影响1、问题描述前段时间做POC,在测试的过程中
- 【Golang】内存管理
千杉沐雪
概述全局内存Golang的内存管理与C语言的有所区别:C语言使用Malloc进行内存分配,使用的是gclib提供的ptmalloc2方法;Golang的内存分配方法类似于Google的TCMalloc,以及MC的内存池管理方式,即:预先申请一大块全局内存,即Arena堆,大小为512G每个线程需要使用内存时向全局内存申请,并维护在线程内部的结构中作为私有内存该方法相对于ptmalloc更好地支持了
- heap exploit总结
clive0x
第二次学习heapexploit,虽说走了弯路,第一次一知半解,知道为啥会走弯路,也是有价值的。相关资料总结:1。https://sploitfun.wordpress.com/2015/02/10/understanding-glibc-malloc/了解heap内部结构2。读ptmalloc相关堆分配代码arena.c和malloc.c3。中途有些代码阅读困难,可参考ptmalloc2源代码分
- linux kernel pwn学习之堆漏洞利用+bypass smap、smep
haivk
pwnCTF二进制漏洞
LinuxkernelHeapexploitLinux内核使用的是slab/slub分配器,与glibc下的ptmalloc有许多类似的地方。比如kfree后,原来的用户数据区的前8字节会有指向下一个空闲块的指针。如果用户请求的大小在空闲的堆块里有满足要求的,则直接取出。通过调试,可以发现,被释放的堆的数据域前8字节正好指向下一个空闲堆的数据域与glibc下的ptmalloc2不同的是,slab/
- TCMalloc:线程缓存Malloc
Wang-Junchao
gogo
【博文目录>>>】【项目地址>>>】TCMalloc:线程缓存Malloc本文翻译了TCMalloc:Thread-CachingMalloc最重要的部分,TCMalloc是go语言内存分配的基石,go内存分配置就是从TCMalloc演化而来。其余部分内容可参见原文。动机内存分配速度快。TCMalloc比我测试过的glibc2.3malloc(可称为ptmalloc2的独立库)和其他malloc更
- tcmalloc原理
异客z
1、动机tcmalloc要比glibc2.3malloc(基于ptmalloc2实现)要快,ptmalloc2调用一次malloc+free大概需要300ns(2.8GHzP4),而tcmalloc执行同样的操作仅需50ns。tcmalloc降低了在多线程程序中的锁竞争情况。对于小对象,tcmalloc基本达到了零竞争(笔者注:从CentralHeap申请一次内存,足以支撑单线程长期使用,而不需要
- (十一)golang 内存分析
杰克慢
前言编写过C语言程序的肯定知道通过malloc()方法动态申请内存,其中内存分配器使用的是glibc提供的ptmalloc2。除了glibc,业界比较出名的内存分配器有Google的tcmalloc和Facebook的jemalloc。二者在避免内存碎片和性能上均比glic有比较大的优势,在多线程环境中效果更明显。Golang中也实现了内存分配器,原理与tcmalloc类似,简单的说就是维护一块大
- ptmalloc堆实现
MillionSky
PWN
1概述在glibc-2.3.x.之后,glibc中集成了ptmalloc2。可以下载glibc源码查看ptmallochttp://ftp.gnu.org/gnu/glibc/查看glibc版本millionsky@ubuntu-16:~/tmp$ldd--versionldd(UbuntuGLIBC2.23-0ubuntu9)2.23这里主要参考:https://ctf-wiki.github.
- ptmalloc堆概述
MillionSky
PWN
ptmalloc堆概述1概述堆的概念在程序运行过程中,堆可以提供动态分配的内存,允许程序申请大小未知的内存。堆其实就是程序虚拟地址空间的一块连续的线性区域,它由低地址向高地址方向增长。堆管理器我们一般称管理堆的那部分程序为堆管理器。·dlmalloc–Generalpurposeallocator·ptmalloc2–glibc·jemalloc–FreeBSDandFirefox·tcmallo
- ptmalloc堆概述-多线程支持
MillionSky
PWN
ptmalloc堆概述-多线程支持1多线程支持在原来的dlmalloc实现中,当两个线程同时要申请内存时,只有一个线程可以进入临界区申请内存,而另外一个线程则必须等待直到临界区中不再有线程。这是因为所有的线程共享一个堆。在glibc的ptmalloc2实现中,比较好的一点就是支持了多线程的快速访问。在新的实现中,所有的线程共享多个堆。Ptmalloc2中,两个线程同时调用malloc时,每一个线程
- 堆溢出基础——ptmalloc源码分析
Gxiandy
日常笔记
0x00前言决定学习堆溢出很久了但却因为内心对源码的恐惧一直不愿意解出这块内容,于是在实习面试的时候被问到linux的内存管理一脸懵逼啥都不会。。。。痛定思痛利用一周末时间将堆的实现硬着头皮看了一遍,现在记录如下。参考内容:CTFwiki深入理解堆的实现Glibc内存管理Ptmalloc2源代码分析0x01操作系统内存分配的相关函数brk()系统调用与sbrk()库函数内核数据结构mm_struc
- ptmalloc2
weixin_34357887
原文链接:http://www.cnblogs.com/zhangtiezi/p/8431621.html本文参考华庭(庄明强)的ptmalloc2源码剖析简介:ptmalloc实现了malloc(),free()以及一组其他函数,以提供动态内存管理,同时支持多线程。分配器处于用户空间和内核空间之间,响应用户的分配请求,向操作系统申请内存。总体思想是先“批发”一块大内存,而后“零售”给用户,同时也
- 内存管理(一) ptmalloc基础知识
时光耗子_hzh
内存管理
本文讨论了:1.ptmalloc的简单概念2.各种chunk3.bin数组以及brk和mmap1.ptmalloc的简单概念glibc在开始的时候malloc是不支持多线程的,但是在glibc_2.3x中集成了ptmalloc2,也就是平常使用的malloc。这就实现了对多线程编程的支持。本文将讨论ptmalloc的整个malloc(),free()以及他的初始化等。为了保证内存的高效分配,在第一
- TCMalloc原理
NBtingwu
小工具
这段时间比较闲,研究下内存管理,从官方文档开始啃起《TCMalloc:Thread-CachingMalloc》。一、动机TCMalloc要比glibc2.3的malloc(可以从一个叫作ptmalloc2的独立库获得)和其他我测试过的malloc都快。ptmalloc在一台2.8GHz的P4机器上执行一次小对象malloc及free大约需要300纳秒,而TCMalloc的版本同样的操作大约只
- system programming 内存管理
DaI253
体会C库函数的功能实现方式CS360SystemProgrammingLabCS360MallocLab参考资料CS360SystemProgrammingLectureNotesMemoryMalloc1Malloc2一篇很有用的详细教程AmallocTutorial[备份地址]CProgrammingLanguage5.4地址算术运算8.7实例存储分配程序Glibc内存管理-ptmalloc2
- TCMalloc
malloc
一. 原理
tcmalloc就是一个内存分配器,管理堆内存,主要影响malloc和free,用于降低频繁分配、释放内存造成的性能损耗,并且有效地控制内存碎片。glibc中的内存分配器是ptmalloc2,tcmalloc号称要比它快。一次malloc和free操作,ptmalloc需要300ns,而tcmalloc只要50ns。同时tcmalloc也优化了小对象的存储,需要更少的空间。tcmal
- TCMalloc小记
u010064842
tcmolloc优化
一.原理tcmalloc就是一个内存分配器,管理堆内存,主要影响malloc和free,用于降低频繁分配、释放内存造成的性能损耗,并且有效地控制内存碎片。glibc中的内存分配器是ptmalloc2,tcmalloc号称要比它快。一次malloc和free操作,ptmalloc需要300ns,而tcmalloc只要50ns。同时tcmalloc也优化了小对象的存储,需要更少的空间。tcmalloc
- 存储器分配替代库
braveyly
阅读更多1、由于存储器分配出错很难跟踪,某些系统提供了这些函数的其他实现版本。ptmalloc2是Unix使用的内存分配库tcmalloc号称比ptmalloc2快,属于gperftoolsHoard的目标是使内存分配在多线程环境中进行得非常快nedmalloc是一个跨平台的高性能多线程内存分配库,windowsword都使用了这个库2、C语言里有一个alloca函数,可以在堆栈上分配一块内存,当
- 存储器分配替代库
braveyly
阅读更多1、由于存储器分配出错很难跟踪,某些系统提供了这些函数的其他实现版本。ptmalloc2是Unix使用的内存分配库tcmalloc号称比ptmalloc2快,属于gperftoolsHoard的目标是使内存分配在多线程环境中进行得非常快nedmalloc是一个跨平台的高性能多线程内存分配库,windowsword都使用了这个库2、C语言里有一个alloca函数,可以在堆栈上分配一块内存,当
- 存储器分配替代库
braveyly
存储
1、由于存储器分配出错很难跟踪,某些系统提供了这些函数的其他实现版本。
ptmalloc2是Unix使用的内存分配库
tcmalloc号称比ptmalloc2快,属于gperftools
Hoard 的目标是使内存分配在多线程环境中进行得非常快
nedmalloc是一个跨平台的高性能多线程内存分配库,windows word都使用了这个库
2、C 语言里有一个 alloca 函数,可以在
- Js函数返回值
_wy_
jsreturn
一、返回控制与函数结果,语法为:return 表达式;作用: 结束函数执行,返回调用函数,而且把表达式的值作为函数的结果 二、返回控制语法为:return;作用: 结束函数执行,返回调用函数,而且把undefined作为函数的结果 在大多数情况下,为事件处理函数返回false,可以防止默认的事件行为.例如,默认情况下点击一个<a>元素,页面会跳转到该元素href属性
- MySQL 的 char 与 varchar
bylijinnan
mysql
今天发现,create table 时,MySQL 4.1有时会把 char 自动转换成 varchar
测试举例:
CREATE TABLE `varcharLessThan4` (
`lastName` varchar(3)
) ;
mysql> desc varcharLessThan4;
+----------+---------+------+-
- Quartz——TriggerListener和JobListener
eksliang
TriggerListenerJobListenerquartz
转载请出自出处:http://eksliang.iteye.com/blog/2208624 一.概述
listener是一个监听器对象,用于监听scheduler中发生的事件,然后执行相应的操作;你可能已经猜到了,TriggerListeners接受与trigger相关的事件,JobListeners接受与jobs相关的事件。
二.JobListener监听器
j
- oracle层次查询
18289753290
oracle;层次查询;树查询
.oracle层次查询(connect by)
oracle的emp表中包含了一列mgr指出谁是雇员的经理,由于经理也是雇员,所以经理的信息也存储在emp表中。这样emp表就是一个自引用表,表中的mgr列是一个自引用列,它指向emp表中的empno列,mgr表示一个员工的管理者,
select empno,mgr,ename,sal from e
- 通过反射把map中的属性赋值到实体类bean对象中
酷的飞上天空
javaee泛型类型转换
使用过struts2后感觉最方便的就是这个框架能自动把表单的参数赋值到action里面的对象中
但现在主要使用Spring框架的MVC,虽然也有@ModelAttribute可以使用但是明显感觉不方便。
好吧,那就自己再造一个轮子吧。
原理都知道,就是利用反射进行字段的赋值,下面贴代码
主要类如下:
import java.lang.reflect.Field;
imp
- SAP HANA数据存储:传统硬盘的瓶颈问题
蓝儿唯美
HANA
SAPHANA平台有各种各样的应用场景,这也意味着客户的实施方法有许多种选择,关键是如何挑选最适合他们需求的实施方案。
在 《Implementing SAP HANA》这本书中,介绍了SAP平台在现实场景中的运作原理,并给出了实施建议和成功案例供参考。本系列文章节选自《Implementing SAP HANA》,介绍了行存储和列存储的各自特点,以及SAP HANA的数据存储方式如何提升空间压
- Java Socket 多线程实现文件传输
随便小屋
javasocket
高级操作系统作业,让用Socket实现文件传输,有些代码也是在网上找的,写的不好,如果大家能用就用上。
客户端类:
package edu.logic.client;
import java.io.BufferedInputStream;
import java.io.Buffered
- java初学者路径
aijuans
java
学习Java有没有什么捷径?要想学好Java,首先要知道Java的大致分类。自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE
- APP推广
aoyouzi
APP推广
一,免费篇
1,APP推荐类网站自主推荐
最美应用、酷安网、DEMO8、木蚂蚁发现频道等,如果产品独特新颖,还能获取最美应用的评测推荐。PS:推荐简单。只要产品有趣好玩,用户会自主分享传播。例如足迹APP在最美应用推荐一次,几天用户暴增将服务器击垮。
2,各大应用商店首发合作
老实盯着排期,多给应用市场官方负责人献殷勤。
3,论坛贴吧推广
百度知道,百度贴吧,猫扑论坛,天涯社区,豆瓣(
- JSP转发与重定向
百合不是茶
jspservletJava Webjsp转发
在servlet和jsp中我们经常需要请求,这时就需要用到转发和重定向;
转发包括;forward和include
例子;forwrad转发; 将请求装法给reg.html页面
关键代码;
req.getRequestDispatcher("reg.html
- web.xml之jsp-config
bijian1013
javaweb.xmlservletjsp-config
1.作用:主要用于设定JSP页面的相关配置。
2.常见定义:
<jsp-config>
<taglib>
<taglib-uri>URI(定义TLD文件的URI,JSP页面的tablib命令可以经由此URI获取到TLD文件)</tablib-uri>
<taglib-location>
TLD文件所在的位置
- JSF2.2 ViewScoped Using CDI
sunjing
CDIJSF 2.2ViewScoped
JSF 2.0 introduced annotation @ViewScoped; A bean annotated with this scope maintained its state as long as the user stays on the same view(reloads or navigation - no intervening views). One problem w
- 【分布式数据一致性二】Zookeeper数据读写一致性
bit1129
zookeeper
很多文档说Zookeeper是强一致性保证,事实不然。关于一致性模型请参考http://bit1129.iteye.com/blog/2155336
Zookeeper的数据同步协议
Zookeeper采用称为Quorum Based Protocol的数据同步协议。假如Zookeeper集群有N台Zookeeper服务器(N通常取奇数,3台能够满足数据可靠性同时
- Java开发笔记
白糖_
java开发
1、Map<key,value>的remove方法只能识别相同类型的key值
Map<Integer,String> map = new HashMap<Integer,String>();
map.put(1,"a");
map.put(2,"b");
map.put(3,"c"
- 图片黑色阴影
bozch
图片
.event{ padding:0; width:460px; min-width: 460px; border:0px solid #e4e4e4; height: 350px; min-heig
- 编程之美-饮料供货-动态规划
bylijinnan
动态规划
import java.util.Arrays;
import java.util.Random;
public class BeverageSupply {
/**
* 编程之美 饮料供货
* 设Opt(V’,i)表示从i到n-1种饮料中,总容量为V’的方案中,满意度之和的最大值。
* 那么递归式就应该是:Opt(V’,i)=max{ k * Hi+Op
- ajax大参数(大数据)提交性能分析
chenbowen00
WebAjax框架浏览器prototype
近期在项目中发现如下一个问题
项目中有个提交现场事件的功能,该功能主要是在web客户端保存现场数据(主要有截屏,终端日志等信息)然后提交到服务器上方便我们分析定位问题。客户在使用该功能的过程中反应点击提交后反应很慢,大概要等10到20秒的时间浏览器才能操作,期间页面不响应事件。
根据客户描述分析了下的代码流程,很简单,主要通过OCX控件截屏,在将前端的日志等文件使用OCX控件打包,在将之转换为
- [宇宙与天文]在太空采矿,在太空建造
comsci
我们在太空进行工业活动...但是不太可能把太空工业产品又运回到地面上进行加工,而一般是在哪里开采,就在哪里加工,太空的微重力环境,可能会使我们的工业产品的制造尺度非常巨大....
地球上制造的最大工业机器是超级油轮和航空母舰,再大些就会遇到困难了,但是在空间船坞中,制造的最大工业机器,可能就没
- ORACLE中CONSTRAINT的四对属性
daizj
oracleCONSTRAINT
ORACLE中CONSTRAINT的四对属性
summary:在data migrate时,某些表的约束总是困扰着我们,让我们的migratet举步维艰,如何利用约束本身的属性来处理这些问题呢?本文详细介绍了约束的四对属性: Deferrable/not deferrable, Deferred/immediate, enalbe/disable, validate/novalidate,以及如
- Gradle入门教程
dengkane
gradle
一、寻找gradle的历程
一开始的时候,我们只有一个工程,所有要用到的jar包都放到工程目录下面,时间长了,工程越来越大,使用到的jar包也越来越多,难以理解jar之间的依赖关系。再后来我们把旧的工程拆分到不同的工程里,靠ide来管理工程之间的依赖关系,各工程下的jar包依赖是杂乱的。一段时间后,我们发现用ide来管理项程很不方便,比如不方便脱离ide自动构建,于是我们写自己的ant脚本。再后
- C语言简单循环示例
dcj3sjt126com
c
# include <stdio.h>
int main(void)
{
int i;
int count = 0;
int sum = 0;
float avg;
for (i=1; i<=100; i++)
{
if (i%2==0)
{
count++;
sum += i;
}
}
avg
- presentModalViewController 的动画效果
dcj3sjt126com
controller
系统自带(四种效果):
presentModalViewController模态的动画效果设置:
[cpp]
view plain
copy
UIViewController *detailViewController = [[UIViewController al
- java 二分查找
shuizhaosi888
二分查找java二分查找
需求:在排好顺序的一串数字中,找到数字T
一般解法:从左到右扫描数据,其运行花费线性时间O(N)。然而这个算法并没有用到该表已经排序的事实。
/**
*
* @param array
* 顺序数组
* @param t
* 要查找对象
* @return
*/
public stati
- Spring Security(07)——缓存UserDetails
234390216
ehcache缓存Spring Security
Spring Security提供了一个实现了可以缓存UserDetails的UserDetailsService实现类,CachingUserDetailsService。该类的构造接收一个用于真正加载UserDetails的UserDetailsService实现类。当需要加载UserDetails时,其首先会从缓存中获取,如果缓存中没
- Dozer 深层次复制
jayluns
VOmavenpo
最近在做项目上遇到了一些小问题,因为架构在做设计的时候web前段展示用到了vo层,而在后台进行与数据库层操作的时候用到的是Po层。这样在业务层返回vo到控制层,每一次都需要从po-->转化到vo层,用到BeanUtils.copyProperties(source, target)只能复制简单的属性,因为实体类都配置了hibernate那些关联关系,所以它满足不了现在的需求,但后发现还有个很
- CSS规范整理(摘自懒人图库)
a409435341
htmlUIcss浏览器
刚没事闲着在网上瞎逛,找了一篇CSS规范整理,粗略看了一下后还蛮有一定的道理,并自问是否有这样的规范,这也是初入前端开发的人一个很好的规范吧。
一、文件规范
1、文件均归档至约定的目录中。
具体要求通过豆瓣的CSS规范进行讲解:
所有的CSS分为两大类:通用类和业务类。通用的CSS文件,放在如下目录中:
基本样式库 /css/core
- C++动态链接库创建与使用
你不认识的休道人
C++dll
一、创建动态链接库
1.新建工程test中选择”MFC [dll]”dll类型选择第二项"Regular DLL With MFC shared linked",完成
2.在test.h中添加
extern “C” 返回类型 _declspec(dllexport)函数名(参数列表);
3.在test.cpp中最后写
extern “C” 返回类型 _decls
- Android代码混淆之ProGuard
rensanning
ProGuard
Android应用的Java代码,通过反编译apk文件(dex2jar、apktool)很容易得到源代码,所以在release版本的apk中一定要混淆一下一些关键的Java源码。
ProGuard是一个开源的Java代码混淆器(obfuscation)。ADT r8开始它被默认集成到了Android SDK中。
官网:
http://proguard.sourceforge.net/
- 程序员在编程中遇到的奇葩弱智问题
tomcat_oracle
jquery编程ide
现在收集一下:
排名不分先后,按照发言顺序来的。
1、Jquery插件一个通用函数一直报错,尤其是很明显是存在的函数,很有可能就是你没有引入jquery。。。或者版本不对
2、调试半天没变化:不在同一个文件中调试。这个很可怕,我们很多时候会备份好几个项目,改完发现改错了。有个群友说的好: 在汤匙
- 解决maven-dependency-plugin (goals "copy-dependencies","unpack") is not supported
xp9802
dependency
解决办法:在plugins之前添加如下pluginManagement,二者前后顺序如下:
[html]
view plain
copy
<build>
<pluginManagement