- 浏览: 155089 次
- 来自: ...
-
文章分类
- 全部博客 (122)
- 工作日志 (6)
- jive学习 (3)
- Hibernate 学习 (4)
- Spring 学习 (5)
- JAVA 基础学习 (14)
- 网上JAVA好帖子 (2)
- 生活小常识 (12)
- 设计模式学习 (1)
- Struts学习 (4)
- java转贴网址 (13)
- 盈利模式 (2)
- 技术探索 (8)
- Linux资料 (4)
- 博客好文章 (3)
- 业务或管理学习 (6)
- 项目管理资料 (14)
- 开源框架学习 (4)
- java 可视化开发 (1)
- 配置MYsql问题-1045的具体方法 (1)
- dasfd (0)
- 人际关系 沟通表达 (1)
- Android 学习 (4)
- web (1)
- DDD 资料 (1)
- 餐饮资料 (1)
- 项目管理工具 (2)
最新评论
-
hanmiao:
看看人家的文章里排版多整齐,阅读起来也方便。http://yz ...
数据结构_用JAVA实现单链表 -
hanmiao:
太乱了,就不会用代码高亮把它格式化下么?
数据结构_用JAVA实现单链表 -
simpletrc:
引用引用[imgnbnnnnnnnnnn][/img]
JAVA国际化的实现 -
喜太狼:
数据结构_用JAVA实现单链表 -
alask2011:
在myeclipse里面struts2.2.1配置core和x ...
在MyEclipse显示struts2源码和doc文档及自动完成功能
http://www.neeboo.com/jishuwenzhang/fuwuqi/Linuxfuwuqi/2009/0614/747.html
关键字:nginx 负载均衡
http://doc1.fehot.com/1/N/35auviL.html
memcached集群负载均衡
http://simblog.vicp.net/?p=105
http://www.zzbaike.com/wiki/Nginx%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1
http://www.blogjava.net/daniel-tu/archive/2008/12/29/248883.html
注:在相对比较大的网站,节约下来的服务器成本无疑是客观的。而有些小型网站往往服务器不多,如果采用 Apache 这类传统 Web 服务器,似乎也还能撑过去。但有其很明显的弊端: Apache 在处理流量爆发的时候(比如爬虫或者是 Digg 效应) 很容易过载,这样的情况下采用 Nginx 最为合适。
建议方案:
Apache 后台服务器(主要处理php及一些功能请求 如:中文url)
Nginx 前端服务器(利用它占用系统资源少得优势来处理静态页面大量请求)
Lighttpd 图片服务器
总体来说,随着nginx功能得完善将使他成为今后web server得主流.
一个简单的Nginx负载均衡的示例
http://safe.atimg.com/html/jishuziliao/caozuoxitong/20100113/83.html
原生Windows版本nginx的安装与使用体会
http://bbs.linuxtone.org/thread-2553-1-1.html
Nginx 常见应用技术指南[Nginx Tips] 第二版
http://jerryllx.iteye.com/blog/451599
nginx负载均衡和lvs负载均衡的比较分析
http://www.sudone.com/nginx/nginx_vs_lvs.html
编者按:Nginx是目前比较重要的开源性负载均衡技术,新浪、网易、六间房等很多网站都将Nginx部署进自己的网站系统架构,并解决部分问题。本文是作者长期的实战经验,很有参考价值。
本文是我撰写的关于搭建“Nginx + PHP(FastCGI)”Web服务器的第4篇文章。本系列文章作为国内最早详细介绍 Nginx + PHP 安装、配置、使用的资料之一,为推动 Nginx 在国内的发展产生了积极的作用。
众网站纷纷重视Nginx
这是一篇关于Nginx 0.7.x系列版本的文章,安装、配置方式与第3篇文章相差不大,但配置参数有不同。Nginx 0.7.x系列版本虽然为开发版,但在很多大型网站的生产环境中已经使用。
Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。
Nginx 超越 Apache 的高性能和稳定性,使得国内使用 Nginx 作为 Web 服务器的网站也越来越多,其中包括新浪博客、新浪播客、网易新闻等门户网站频道,六间房、56.com等视频分享网站,Discuz!官方论坛、水木社区等知名论坛,豆瓣、YUPOO相册、海内SNS、迅雷在线等新兴Web 2.0网站。
我生产环境下的两台Nginx + PHP5(FastCGI)服务器,跑多个一般复杂的纯PHP动态程序,单台Nginx + PHP5(FastCGI)服务器跑PHP动态程序的处理能力已经超过“700次请求/秒”,相当于每天可以承受6000万(700*60*60*24=60480000)的访问量(更多信息见此),而服务器的系统负载也不高:
如何获取相关开源程序?
安装步骤:
(系统要求:Linux 2.6+ 内核,本文中的Linux操作系统为CentOS 5.1,另在RedHat AS4上也安装成功)
一、获取相关开源程序:
1、利用CentOS Linux系统自带的yum命令安装、升级所需的程序库(RedHat等其他Linux发行版可从安装光盘中找到这些程序库的RPM包,进行安装):
sudo -s LANG=C yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel |
2、RedHat等其他Linux发行版可从安装光盘中找到这些程序库的RPM包(事先可通过类似“rpm -qa | grep libjpeg”的命令查看所需的RPM包是否存在,通常是“xxx-devel”不存在,需要安装)。RedHat可以直接利用CentOS的RPM包安装,以下是RPM包下载网址:
①、RedHat AS4 & CentOS 4 http://mirror.be10.com/centos/4/os/i386/CentOS/RPMS/ ②、RedHat AS5 & CentOS 5 http://mirror.be10.com/centos/5/os/i386/CentOS/ ③、RPM包搜索网站 http://rpm.pbone.net/ http://www.rpmfind.net/ |
3、下载程序源码包:
本文中提到的所有开源软件为截止到2008年8月28日的最新稳定版。
mkdir -p /data0/software cd /data0/software wget http://sysoev.ru/nginx/nginx-0.7.14.tar.gz wget http://www.php.net/get/php-5.2.6.tar.gz/from/this/mirror wget http://php-fpm.anight.org/downloads/head/php-5.2.6-fpm-0.5.8.diff.gz #wget http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.26-rc.tar.gz/from/http://mirror.x10.com/mirror/mysql/ wget linux/mysql/mysql-5.1.26-rc.tar.gz">http://blog.s135.com/soft/linux/mysql/mysql-5.1.26-rc.tar.gz wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.12.tar.gz #wget "http://downloads.sourceforge.net/mcrypt/libmcrypt-2.5.8.tar.gz?modtime=1171868460&big_mirror=0" wget http://mirror.optus.net/sourceforge/m/mc/mcrypt/libmcrypt-2.5.8.tar.gz #wget "http://downloads.sourceforge.net/mcrypt/mcrypt-2.6.7.tar.gz?modtime=1194463373&big_mirror=0" wget http://mirror.optus.net/sourceforge/m/mc/mcrypt/mcrypt-2.6.7.tar.gz wget http://pecl.php.net/get/memcache-2.2.3.tgz #wget "http://downloads.sourceforge.net/mhash/mhash-0.9.9.tar.gz?modtime=1175740843&big_mirror=0" wget http://mirror.optus.net/sourceforge/m/mh/mhash/mhash-0.9.9.tar.gz wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.7.tar.gz wget |
PHP5安装、配置内容
二、安装PHP 5.2.6(FastCGI模式)
1、编译安装PHP 5.2.6所需的支持库:
tar zxvf libiconv-1.12.tar.gz cd libiconv-1.12/ ./configure --prefix=/usr/local make make install cd ../ tar zxvf libmcrypt-2.5.8.tar.gz tar zxvf mhash-0.9.9.tar.gz cp /usr/local/lib/libmcrypt.* /usr/lib tar zxvf mcrypt-2.6.7.tar.gz |
2、编译安装MySQL 5.1.26-rc
/usr/sbin/groupadd mysql /usr/sbin/useradd -g mysql mysql tar zxvf mysql-5.1.26-rc.tar.gz cd mysql-5.1.26-rc/ ./configure --prefix=/usr/local/webserver/mysql/ --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-big-tables --with-readline --with-ssl --with-embedded-server --enable-local-infile make && make install chmod +w /usr/local/webserver/mysql chown -R mysql:mysql /usr/local/webserver/mysql cp support-files/my-medium.cnf /usr/local/webserver/mysql/my.cnf cd ../ |
附:以下为附加步骤,如果你想在这台服务器上运行MySQL数据库,则执行以下两步。如果你只是希望让PHP支持MySQL扩展库,能够连接其他服务器上的MySQL数据库,那么,以下两步无需执行。
①、以mysql用户帐号的身份建立数据表: |
3、编译安装PHP(FastCGI模式)
tar zxvf php-5.2.6.tar.gz gzip -cd php-5.2.6-fpm-0.5.8.diff.gz | patch -d php-5.2.6 -p1 cd php-5.2.6/ ./configure --prefix=/usr/local/webserver/php --with-config-file-path=/usr/local/webserver/php/etc --with-mysql=/usr/local/webserver/mysql --with-mysqli=/usr/local/webserver/mysql/bin/mysql_config --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl sed -i 's#-lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt#& -liconv#' Makefile make make install cp php.ini-dist /usr/local/webserver/php/etc/php.ini cd ../ |
4、编译安装PHP5扩展模块
tar zxvf memcache-2.2.3.tgz cd memcache-2.2.3/ /usr/local/webserver/php/bin/phpize ./configure --with-php-config=/usr/local/webserver/php/bin/php-config make make install cd ../ tar jxvf eaccelerator-0.9.5.3.tar.bz2 |
5、修改php.ini文件
手工修改:查找/usr/local/webserver/php/etc/php.ini中的extension_dir = "./" 修改为extension_dir = "/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/" 并在此行后增加以下几行,然后保存: extension = "memcache.so" 再查找output_buffering = Off 自动修改:若嫌手工修改麻烦,可执行以下shell命令,自动完成对php.ini文件的修改: |
6、配置eAccelerator加速PHP:
mkdir -p /usr/local/webserver/eaccelerator_cache vi /usr/local/webserver/php/etc/php.ini |
按shift+g键跳到配置文件的最末尾,加上以下配置信息:
[eaccelerator] zend_extension="/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so" eaccelerator.shm_size="128" eaccelerator.cache_dir="/usr/local/webserver/eaccelerator_cache" eaccelerator.enable="1" eaccelerator.optimizer="1" eaccelerator.check_mtime="1" eaccelerator.debug="0" eaccelerator.filter="" eaccelerator.shm_max="0" eaccelerator.shm_ttl="300" eaccelerator.shm_prune_period="120" eaccelerator.shm_only="0" eaccelerator.compress="1" eaccelerator.compress_level="9" |
修改配置文件:
vi /etc/sysctl.conf |
输入以下内容:
kernel.shmmax = 134217728 |
然后执行以下命令使配置生效:
/sbin/sysctl -p |
7、创建www用户和组,以及供blog.s135.com和www.s135.com两个虚拟主机使用的目录:
/usr/sbin/groupadd www -g 48 /usr/sbin/useradd -u 48 -g www www mkdir -p /data0/htdocs/blog chmod +w /data0/htdocs/blog chown -R www:www /data0/htdocs/blog mkdir -p /data0/htdocs/www chmod +w /data0/htdocs/www chown -R www:www /data0/htdocs/www |
8、创建php-fpm配置文件(php-fpm是为PHP打的一个FastCGI管理补丁,可以平滑变更php.ini配置而无需重启php-cgi):
在/usr/local/webserver/php/etc/目录中创建php-fpm.conf文件: rm -f /usr/local/webserver/php/etc/php-fpm.conf vi /usr/local/webserver/php/etc/php-fpm.conf |
输入以下内容(如果您安装 Nginx + PHP 用于程序调试,请将以下的<value name="display_errors">0</value>改为<value name="display_errors">1</value>,以便显示PHP错误信息,否则,Nginx 会报状态为500的空白错误页):
All relative paths in this config are relative to php's install prefix <section name="global_options"> Pid file Error log file Log level When this amount of php processes exited with SIGSEGV or SIGBUS ... ... in a less than this interval of time, a graceful restart will be initiated. Time limit on waiting child's reaction on signals from master Set to 'no' to debug fpm </section> <workers> <section name="pool"> Name of pool. Used in logs and stats. Address to accept fastcgi requests on. <value name="listen_options"> Set listen(2) backlog Set permissions for unix socket, if one used. Additional php.ini defines, specific to this pool of workers. Unix user of processes Unix group of processes Process manager settings Sets style of controling worker process count. Sets the limit on the number of simultaneous requests that will be served. Settings group for 'apache-like' pm style Sets the number of server processes created on startup. Sets the desired minimum number of idle server processes. Sets the desired maximum number of idle server processes. </value> </value> Time limit on waiting execution of single request Set open file desc rlimit Set max core size rlimit Chroot to this directory at the start Chdir to this directory at the start Redirect workers' stdout and stderr into main error log. How much requests each process should execute before respawn. Comma separated list of ipv4 addresses of FastCGI clients that allowed to connect. Pass environment variables like LD_LIBRARY_PATH </section> </workers> </configuration> |
9、启动php-cgi进程,监听127.0.0.1的9000端口,进程数为200(如果服务器内存小于3GB,可以只开启64个进程),用户为www:
ulimit -SHn 51200 /usr/local/webserver/php/sbin/php-fpm start |
注:/usr/local/webserver/php/sbin/php-fpm还有其他参数,包括:start|stop|quit|restart|reload|logrotate,修改php.ini后不重启php-cgi,重新加载配置文件使用reload。
安装、配置Nginx 0.7.14
三、安装Nginx 0.7.14
1、安装Nginx所需的pcre库:
tar zxvf pcre-7.7.tar.gz cd pcre-7.7/ ./configure make && make install cd ../ |
2、安装Nginx
tar zxvf nginx-0.7.14.tar.gz cd nginx-0.7.14/ ./configure --user=www --group=www --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module make && make install cd ../ |
3、创建Nginx日志目录
mkdir -p /data1/logs chmod +w /data1/logs chown -R www:www /data1/logs |
4、创建Nginx配置文件
①、在/usr/local/webserver/nginx/conf/目录中创建nginx.conf文件: rm -f /usr/local/webserver/nginx/conf/nginx.conf vi /usr/local/webserver/nginx/conf/nginx.conf |
输入以下内容:
#limit_zone crawler $binary_remote_addr 10m; server #limit_conn crawler 20; location ~ .*\.(php|php5)?$ |
②、在/usr/local/webserver/nginx/conf/目录中创建fcgi.conf文件:
vi /usr/local/webserver/nginx/conf/fcgi.conf |
输入以下内容:
fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx; fastcgi_param QUERY_STRING $query_string; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param REMOTE_ADDR $remote_addr; # PHP only, required if PHP was built with --enable-force-cgi-redirect |
5、启动Nginx
ulimit -SHn 51200 /usr/local/webserver/nginx/sbin/nginx |
四、配置开机自动启动Nginx + PHP
vi /etc/rc.local |
在末尾增加以下内容:
ulimit -SHn 51200 /usr/local/webserver/php/sbin/php-fpm start /usr/local/webserver/nginx/sbin/nginx |
五、优化Linux内核参数
vi /etc/sysctl.conf |
在末尾增加以下内容:
net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_keepalive_time = 300 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.ip_local_port_range = 5000 65000 |
使配置立即生效:
/sbin/sysctl -p |
六、在不停止Nginx服务的情况下平滑变更Nginx配置
(1)、修改/usr/local/webserver/nginx/conf/nginx.conf配置文件后,请执行以下命令检查配置文件是否正确:
/usr/local/webserver/nginx/sbin/nginx -t |
如果屏幕显示以下两行信息,说明配置文件正确:
the configuration file /usr/local/webserver/nginx/conf/nginx.conf syntax is ok the configuration file /usr/local/webserver/nginx/conf/nginx.conf was tested successfully |
(2)、这时,输入以下命令查看Nginx主进程号:
ps -ef | grep "nginx: master process" | grep -v "grep" | awk -F ' ' '{print $2}' |
屏幕显示的即为Nginx主进程号,例如:
6302 |
这时,执行以下命令即可使修改过的Nginx配置文件生效:
kill -HUP 6302 |
或者无需这么麻烦,找到Nginx的Pid文件:
kill -HUP `cat /usr/local/webserver/nginx/nginx.pid` |
发表评论
-
项目管理 网上资料
2014-04-13 09:22 0软件部门经理具备的素质 http://hgx615.itey ... -
如何开展工作
2013-04-05 09:55 570http://zhidao.baidu.com/questio ... -
软件项目验收
2013-04-02 21:31 759关键词:软件项目验收标准 软件项目验收实施办法 http:/ ... -
学会拒绝,学会提要求
2013-01-08 12:08 737别人要你做什么,你就做什么,最后会变成苦力。别人需要你时就出现 ... -
领导者需要警惕的六大日常决策陷阱
2010-06-20 10:08 747http://yangzb.iteye.com/blog/68 ... -
如何带平均年龄小的团队
2010-06-20 10:04 722http://jackyrong.iteye.com/blog ... -
Apache负载均衡+Tomcat集群
2010-05-04 23:05 876http://weijie.blog.51cto.com/34 ... -
利用LVS+Keepalived 实现高性能高可用负载均衡
2010-05-04 22:41 835http://wenku.baidu.com/view/06e ... -
Java项目不同开发阶段的工具选择
2010-03-08 10:20 1648http://peter9.iteye.com/blog/6 ... -
项目开发经验 转载
2010-03-08 09:21 857http://yanmouse.iteye.com/blog/ ... -
团队管理-思考 转载
2010-03-08 09:18 704http://rrsy23.iteye.com/blog/60 ... -
项目管理初(1) 转载
2010-03-08 09:09 709http://bbobchen.iteye.com/blog/ ... -
系统分析与设计 转载
2010-03-08 08:54 768一、系统开发生命周期 ... -
今天终于决定了项目经理 转载
2010-03-08 08:51 679今天终于决定了项目经理 文章分类:软件开发管理 ...
相关推荐
Nginx不仅作为静态资源服务器,还可以作为7层负载均衡服务器,通过配置反向代理和负载均衡策略,如轮询、权重分配等,将请求分发到不同的后端服务器,提高系统的可用性和响应速度。 【PHP与FastCGI的结合】 Nginx...
【Nginx与Apache对比】 ...总结,Nginx的高性能、低资源消耗以及出色的反向代理和负载均衡能力,使其成为搭建Web服务器的优选,尤其在处理高并发连接和动态内容时,相比于Apache展现出显著的优势。
【Nginx 0.7.x + PHP5.2.10(FastCGI)搭建胜过Apache十倍的Web服务器】 Nginx是一个高性能的HTTP和反向代理服务器,同时也支持IMAP/POP3/SMTP代理服务。由Igor Sysoev为Rambler.ru站点开发,并以其出色的性能和...
本文是依照张宴的 Nginx 0.7.x + PHP 5.2.10(FastCGI)搭建胜过Apache十倍的Web服务器(第5版) 编写 原文地址 http://blog.s135.com/nginx_php_v5/ 因为编译过程和等待时间繁琐,于是就自己写了个全自动安装的...
安装步骤: 1.逍遥商城系统需要PHP+mysql运行环境,可以在windows或linux下运行,具体的php和mysql的版本没有特殊要求,兼容范围还是比较广的,推荐php5.6以上,mysql5.0以上。 2.把文件夹所有文件解压缩在站点目录中, 2.执行http://127.0.0.1/install/index.php进行安装 3.安装完成后,把install目录删掉。
wordpress可视化数据采集Scrapes插件,WP博客网站自动采集发布 支持 PHP7.4,PHP8.0 及以上不支持 上传插件到 wp-content/plugins 目录,然后解压 不需要写采集规则,傻瓜式操作,只需要对方的网址域名,在后台动动鼠标即可。
STM32F103使用NRF2401通过ACK响应双向通讯(HAL库) 简单的应用。
Libmodbus 是一个用于 Modbus 协议的开源库,提供了丰富的函数接口,可方便实现设备间的 Modbus 通信,支持多种平台,能轻松移植到不同系统中,有助于开发人员快速构建 Modbus 相关应用程序。我已编译好windows x86 版本的dll
内容概要:本文详细介绍了LabVIEW在汽车EPS转向器海纳传感器标定中的应用,重点探讨了如何通过LabVIEW解决传统标定方法中存在的数据采集实时性不足、标定过程缺乏自动化、数据分析难度大的问题。文中展示了具体的代码实现,包括数据采集、分析、校准和报告生成等功能模块,并通过实际案例展示了该系统的高效性和准确性。此外,文章还讨论了一些常见的调试问题及其解决方案,如通信握手逻辑、信号异常检测、温度补偿等。 适合人群:从事汽车电子、传感器标定及相关领域的工程师和技术人员。 使用场景及目标:适用于需要提高传感器标定效率和精度的企业和个人。目标是通过LabVIEW的应用,实现传感器标定的自动化和智能化,从而提升产品质量和生产效率。 其他说明:文章强调了LabVIEW在处理复杂标定任务中的灵活性和强大功能,提供了多个实用的技术细节和实践经验,对于希望深入了解LabVIEW在工业应用中的开发者非常有价值。
内容概要:本文深入探讨了Simulink If模块在嵌入式系统开发中的强大功能,特别是在汽车电子和工业自动化领域的应用。主要介绍了两种核心技术:一是DBC文件的自动导入生成模型及代码,二是硬件信号的导入生成模型及代码。DBC文件的自动导入能够快速构建CAN总线通信模型,简化信号解析和报文处理,生成的代码可以直接应用于AUTOSAR架构,实现ASW和BSW的无缝对接。硬件信号导入功能则允许开发者轻松地将硬件设备产生的信号集成到Simulink模型中,自动生成带有滤波和其他预处理功能的代码,适用于实时数据采集和控制算法实现。 适合人群:从事嵌入式系统开发、汽车电子、工业自动化等相关领域的工程师和技术人员。 使用场景及目标:① 快速搭建基于DBC文件的CAN总线通信模型,提高开发效率;② 实现硬件信号的实时处理和控制,优化数据采集和信号处理流程;③ 自动生成符合AUTOSAR标准的高质量代码,减少手动编码错误。 其他说明:文中提供了多个Matlab代码示例,展示了具体的操作步骤和生成代码的结构,帮助读者更好地理解和应用这些功能。同时,文中还分享了一些实用技巧,如DBC文件的功能模块拆分、硬件信号的时间戳对齐以及代码生成的优化设置等。
流变学仿真方法:流变学仿真参数设置.zip
内容概要:本文详细介绍了0-1背包问题的两种动态规划解法,包括二维DP数组和优化后的一维滚动DP数组方法。首先定义了最大物品数量和背包容量等常量,接着通过两个数组分别存储每个物品的重量和价值。文中给出的代码实现了完整的算法逻辑:初始化边界条件,迭代更新状态转移方程,最终计算出能够放入背包的最大价值。此外还提供了回溯功能,可以找出具体的最优解组合。为了提高空间效率,文章进一步解释了一维滚动数组的使用方法,并附有完整的C++代码实现。 适合人群:计算机科学专业学生或有一定编程基础、对算法设计与分析感兴趣的读者。 使用场景及目标:①学习经典的动态规划问题解决思路;②理解如何通过状态转移方程来优化复杂度;③掌握二维DP向一维DP转换的技术手段以节省内存开销。 阅读建议:建议读者先理解0-1背包问题的基本概念,再逐步深入研究两种不同的解法,注意对比两者之间的异同点,特别是空间复杂度方面的改进。同时可以通过修改输入数据来测试不同情况下的运行结果,加深对算法的理解。
该资源为natsort-3.0.0.tar.gz,欢迎下载使用哦!
内容概要:本文详细介绍了求解一维抛物热传导方程的各种经典数值方法,包括显式欧拉法、隐式欧拉法、Crank-Nicolson格式(即梯形公式)、二阶BDF格式以及不同的差分格式(如五点差分、九点差分和紧差分)。每种方法不仅给出了理论公式的推导,还提供了完整的MATLAB源码实现,并附有详细的代码解释和数值例子的数据图解分析。通过对不同方法的比较,展示了它们在稳定性和精度方面的优劣。 适合人群:具备一定数学和编程基础的学生、科研人员及工程师。 使用场景及目标:适用于需要解决热传导问题的研究项目,帮助使用者理解并选择合适的数值方法进行仿真计算,优化求解过程。 其他说明:文中强调了边界条件处理的重要性,并建议初学者从简单的Dirichlet边界条件入手练习。此外,还提到了一些常见的陷阱,如MATLAB矩阵索引与物理空间坐标的错位问题,提醒开发者注意这些问题以确保正确性。
一个人的经历信息和个人简介
内容概要:本文详细介绍了三菱FX3U PLC的圆弧插补程序,涵盖从中断扫描初始化、U型插补主程序、移动控制函数到急停复位程序的具体实现方法。通过具体的代码示例,展示了如何利用U型插补指令和服务调用来实现精确的圆弧轨迹控制。此外,文中还讨论了插补过程中的一些关键技术点,如中断优先级设置、插补结果存储、角度参数设置以及误差补偿等。同时,提供了关于脉冲输出、坐标计算和方向控制的实际操作技巧,强调了脉冲当量换算的重要性,并分享了一些调试经验和注意事项。 适合人群:从事工业自动化、运动控制领域的工程师和技术人员,特别是那些对PLC编程有一定基础并希望深入了解三菱FX3U PLC圆弧插补功能的人群。 使用场景及目标:适用于需要进行高精度圆弧轨迹控制的应用场景,如CNC控制系统、机器人运动控制等。目标是帮助读者掌握三菱FX3U PLC的圆弧插补编程技能,提高其在实际项目中的应用能力。 其他说明:文中提供的程序实例不仅有助于理解三菱FX3U PLC的工作原理,还能作为实际项目的参考模板。建议读者在实践中不断优化和完善相关程序,以适应不同的应用场景。
内容概要:本文详细介绍了在一个60吨/小时的反渗透+混床纯水项目中,如何利用西门子200 Smart PLC和Smart Line触摸屏进行系统设计与优化。主要内容涵盖硬件架构搭建(如CPU SR40、AI模块、TM模块)、模拟量处理(如电导率、压力、流量等信号的采集与转换)、数据滤波(如滑动平均值算法)、时钟同步(如自动和手动校准)、用户权限管理(如多级权限设置)、报警处理(如状态位轮询和异或运算)以及混床再生控制(如PID指令和状态机编程)。此外,还涉及了一些实用技巧,如数据追溯功能、报警弹窗中的应急处置指引、隐藏的debug模式等。 适合人群:从事工业自动化控制领域的工程师和技术人员,尤其是熟悉西门子PLC和触摸屏编程的人群。 使用场景及目标:适用于需要深入了解和掌握西门子200 Smart PLC在水处理项目中的具体应用和优化方法的专业人士。目标是提高系统稳定性、可靠性和易用性,确保水处理过程高效、精准地运行。 其他说明:文中提供了大量具体的程序代码片段和实践经验分享,对于实际项目实施具有很高的参考价值。同时,作者强调了细节处理的重要性,如模拟量的精确转换、报警系统的完善设计等,这些都是保障系统正常运行的关键因素。
找了一大圈终于找到了,有些e xing博主发的还有密码和要米,本资源真实可用
增压转换器和涡轮机的功率为1千瓦。它们适合风速高达12 m/s。涡轮机参考旋转速度150转/分
卷积神经网络(CNN)项目源码-基于CNN的行为姿态识别代码