是需要多个线程/进程同时工作才行。 话说 Thin 是个 App Server 吧,不能当 Front Web Server 来用的吧?
3.2 的 2B 解
def first_missing_positive(nums)
tail = {}
nums.each do |v|
next if v <= 0
next if tail[v]
tail[v] = v
if tail[v-1]
tail[v] = tail[v-1]
tail[tail[v]] = v
end
if tail[v+1]
last = tail[v+1]
tail[last] = tail[v]
tail[tail[v]] = last
end
end
tail[1] ? tail[1]+1 : 1
end
拿了 80ms
3.1 的正常解
def majority_element(nums)
cnt = 0
num = nums.first
nums.each do |n|
next cnt += 1 if n == num
cnt -= 1
cnt, num = 1, n if cnt < 0
end
num
end
拿了 88ms,好像并不算太慢。如果输入数据量很大的话排序可能会比遍历慢。
就算是修改初始化数据而要重载 web server,我这感觉也就 2、3 秒的样子啊?
#7 楼 @blacktulip ?!
与 if-else 的要求应该是一样的。
只要能转换成 true / false 的都可以。
(Ruby 里应该所有的东西都能转布尔吧)
额,有多慢?
Ruby 的优点就是把珍贵的人工时间移交给电脑。 能花 1000 美金解决的电脑配置问题,绝对不要用 70000 美金来解决人工不够的问题。
所以要有 staging server。 大量锁表就老老实实停站维护咯,放在半夜没人的时候部署就行了,预告下停个十几分钟。
说了一大堆,问题在哪?要我们看什么?
先设计好表结构,再考虑代码。
#7 楼 @robot_zhang 哦哦没注意,原来是 namespace 与 model 冲突。 话说这是应该用 namespace 的场景么?不是 nested resource? 如果是 namespace 的话的确只能改 namespace 名了。 比如 MyShop::Settings 这样。 Shop/X/Account/Y的话感觉应该用nested resource。
#5 楼 @robot_zhang 搜索替换就行了。App 名出现的地方不多的。
#3 楼 @robot_zhang 其实道理也很简单。 因为他们都是常量。
应该就是你的 model class name 与顶层 namespace 冲突了。 所以结论就是不要把整个 App 命名成和某个 model 一样。
因为 133.3 和 0.1 在二进制下无法精确表示,计算时就会产生细小的误差。
client 应该是不会被 GC 的,毕竟在用。
如果重复值 hit 在 rails 身上,会产生一个验证错误。 如果漏过验证而 hit 在 mysql 身上,会产生一个数据库错误。 你感受一下。
(用户) - Web Server - App Server - App
这里 Web 服务器主要负责接待客户,而 App 服务器主要用来加载 App。 Web 服务器被设计成能适应不同种类的客户端访问,不论是网络快的或者慢的,不论是人流少的还是人流多的,都能工作。 App 服务器则相反,主要是和 App 打交道,根据跑的应用的具体情况来加载应用。 最后中间用一个标准接口互联。
我打个比方吧。 比如你家里要用电,电厂 (App) 要发电。 电厂有各种不一样的,风电水电火电核电都有,电压功率都各不同。 这时候就需要在出厂的时候加一个变压器,把电的参数调整到一样,这样才能接入电网。(这就相当于 App Server) 同理客户这边有高楼有平房,有企业有家用,电压功率也都各不同。 这时候就需要在小区或者企业附近加一个变压器,分路出来给各家用。(这就相当于 Web Server) 而变压器与变压器之间则是很简单的标准化电网。(也就是 WebSvr 与 AppSvr 之间的那个统一化的 HTTP 协议)
瞄了一眼你说的 PHP 安装环境,竟然用整合包一键编译我也是醉了。
你还回得去 PHP 么
#12 楼 @arc_start 上面写了 RoutingError 了,所以就是你本地 assets 文件没有生成,或者 nginx 因为不知道什么原因而把 assets 打到后端了。
3 楼正解。2.10.0 被回收了。
#8 楼 @arc_start 数据库你装在哪就在哪。一般是随系统安装的,比如 MySQL 的话,数据文件会存放在/var/lib/mysql
里,配置会存放在/etc/mysql/
里,运行时端口会存放在/var/run/mysqld
里。数据库文件一般不建议直接在服务器间转移,特别是你这样还在提问阶段的人,绝对不要这样做。
我 return 只用在打断执行流程的时候。 所以尾行不写。
你 nginx 有把 root 指向 public 目录吗?
unicorn 就挺好啊。如果你是企业用户,买一下 passenger 也无可厚非吧。不是企业用户没必要这么专注于性能。