Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

Java 8 中 HashMap 的性能提升

Java 8 中 HashMap 的性能提升

HashMap是一个高效通用的数据结构,它在每一个Java程序中都随处可见。先来介绍些基础知识。你可能也知 道,HashMap使用key的hashCode()和equals()方法来将值划分到不同的桶里。桶的数量通常要比map中的记录的数量要稍大,这样 每个桶包括的值会比较少(最好是一个)。当通过key进行查找时,我们可以在常数时间内迅速定位到某个桶(使用hashCode()对桶的数量进行取模) 以及要找的对象。Java 8 的 Nashorn 引擎 ht...
C语言实现泛型编程

C语言实现泛型编程

泛型编程让你编写完全一般化并可重复使用的算法,其效率与针对某特定数据类型而设计的算法相同。在C语言中,可以通过一些手段实现这样的泛型编程。这里介绍一种方法——通过无类型指针void*看下面的一个实现交换两个元素内容的函数swap,以整型int为例:void swap(int* i1,int* i2){ int temp; temp = *i1; *i1 = *i2; *i2 = temp; }当你想交换两个char类型时,你还得重写...
PHP 如何阻止用户上传成人照片或者裸照

PHP 如何阻止用户上传成人照片或者裸照

在这份教程中,我们将会学习到如何组织用户通过PHP上传成人照片或者裸照.PHP源码下载免费下载地址在 http://linux.linuxidc.com/用户名与密码都是www.linuxidc.com具体下载目录在 /2014年资料/4月/28日/PHP 如何阻止用户上传成人照片或者裸照下载方法见 http://www.linuxidc.com/Linux/2013-07/87684.htm我在phpclasses.org上面偶然发现一个很有用的,由Ba...
printf的归宿-数据打印到哪儿了

printf的归宿-数据打印到哪儿了

近日在一次测试Linux内核路由查找算法的过程中,发现一个printf语句竟然能将性能降低2/3。当然,使用“竟然”一词并不意味着这个问题是第一次发现,我的想法是,把它记录下来,让没有经验的同学对printf知其所以然,同时导出我对“性能攸关”的这类算法中记录日志的一个观点。声明我不会把大段的源代码贴在文章中,而只是希望能通过阐述原理把我的意思表达清楚。诚然,作为程序员没有代码好像一切都会很虚,不过同样的,也...
如何扩展Linux的ip_conntrack

如何扩展Linux的ip_conntrack

Linux中有一个基于Netfilter的连接跟踪机制,即ip_conntrack,每一个conntrack表示的就是一个流,该流里面保存了大量的信息字段,这些字段本地有效,指导着数据包的转发策略,但是我觉得这些字段信息还不够详细,试想,一个nfmark字段好像就可以做到一切了,但是我如果想为一个数据流绑定一个字符串怎么办呢?也许你会说使用iptables+ipset+nfmark可以完成一切,这也是UNIX/Linux哲学的风格,一种后现代主义的风格,但...
ip_conntrack的extend机制以及扩展

ip_conntrack的extend机制以及扩展

ip_conntrack为无状态无连接的IP增加了一个流记录机制,你可以把任何和一个流相关的东西放进去,但是放在哪里呢?原则上ip_conntrack应该是一个可以无限扩展的东西,但事实上,内核的设计者或者说Netfilter的ip_conntrack设计者并没有给用户程序员留下任何可以扩展它的接口和机制,你只能用现有的连接跟踪机制,虽然可以通过nf_ct_extend_register接口注册一个nf_ct_ext_type,但是这个接口也只是内核源码树...
利用nf_conntrack机制存储路由,省去每包路由查找

利用nf_conntrack机制存储路由,省去每包路由查找

IP是无连接的,因此IP路由是每包一路由的,数据包通过查找路由表获取路由,这是现代操作协议协议栈IP路由的默认处理方式。但是如果协议栈具有流识别能力,是不是可以基于流来路由呢?答案无疑是肯定的。设计思想在Linux的实现中,nf_conntrack可以做到基于流的IP路由,大致思想就是,仅仅针对一个流的第一个正向包和第一个反向包查找标准的IP路由表,将结果保存在conntrack项中,后续的属于同一流的数据包直接取出路由项来使用。背后的思想是:这可以省去查...
Linux路由表的抽象扩展应用于nf_conntrack

Linux路由表的抽象扩展应用于nf_conntrack

思想标准IP路由查找的过程为我们提供了一个极好的“匹配-动作”的例程。即匹配到一个路由项,然后将数据包发给该路由项指示的下一跳。如果我们把上面对IP路由查找的过程向上抽象一个层次,就会发现,其实它还可以有别的用。抽象后的表述为:以数据包的源地址或者目标地址为键值去查询一张表,查到结果项以后执行结果项指示的一个动作。一个结果项为:struct result_node { uint32 network; uint32 netma...
Qt实现Windows远程控制源代码

Qt实现Windows远程控制源代码

用Qt实现的Windows平台远程控制软件,包含源代码和编译后可以运行的程序,服务器端(被控端)为进程形式,客户端(主控端)为图形界面程序。客户端在连接时要设置服务器端的ip地址以及要显示的长度和宽度(不能超过服务器端屏幕分辨率)。推荐阅读:Ubuntu 环境下Gtk与QT编译环境安装与配置 http://www.linuxidc.com/Linux/2013-08/88539.htmLinux系统下QT环境搭建 http://www.linuxidc.c...
使用Python语言高效地处理一个文本文件

使用Python语言高效地处理一个文本文件

使用Python语言高效地处理一个文本文件:# -- encoding: utf-8 --# 脚本功能:在指定的文件中查找指定的字符串# 此脚本接受两个参数# 参数1:指定一个文件名,在这个文件中查找字符串# 参数2:指定一个字符串用于查找from sys import argvfrom os.path import exists# script - 脚本文件自己# file - 指定操作对象文件名称# string - 查找字符串script, file...
Groovy 2.3 trait语法介绍

Groovy 2.3 trait语法介绍

前几天,Groovy 2.3的第二个beta版本发布。Groovy 2.3最重要的新特性之一是trait语法。trait是一组可重用的方法和字段,可以将它们混入到一个或多个类中。一个类可以同时拥有多个trait而不需要使用多重继承(从而避免钻石问题)。Groovy 的详细介绍:请点这里Groovy 的下载地址:请点这里相关阅读:Gradle 打包 Groovy 脚本成 jar与上传到maven repository http://www.linuxidc....
<< 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 >>