V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  lolizeppelin  ›  全部回复第 1 页 / 共 48 页
回复总数  957
1  2  3  4  5  6  7  8  9  10 ... 48  
18 天前
回复了 nnegier 创建的主题 C 还是不太理解 C 静态库和动态库?
假设你写了一个程序叫 nginx
你的程序依赖了以下库
ssl/gif/jpg/png/lua/gjson

如果你使用静态方式引用上述库
ssl 库更新时 你要重新编译 nginx,更新你的程序
gif 库更新时, 你要重新编译 nginx,更新你的程序
gif 库更新时, 你要重新编译 nginx,更新你的程序
....等等


如果你使用动态库方式引用上述库
ssl 库更新时,你只需要更新 ssl 库,不需要更新你的程序
ssl 库更新时,你只需要更新 gif 库,不需要更新你的程序
...等等


假设你的程序代码 1KB
ssl/gif/jpg/png/lua/gjsn 每个库都是 10MB

如果你使用动态库,你的程序编译出来就是 1KB,内存最低 1KB (简单计算)

如果你使用静态库,你的程序编译出来就是 600MB+1KB,内存最低 600MB+1KB (简单计算)
笑死了...都在用 python 了还在纠结性能问题....
69 天前
回复了 lingeo 创建的主题 Python 如何为 Python 原生对象添加函数
我敢打赌 楼主原来是写 js 的
83 天前
回复了 zywscq 创建的主题 Python Python 如何实现单例模式
用元类装饰器

```python
class Singleton(type):
_instances = {}
_semaphores = lockutils.Semaphores()

def __call__(cls, *args, **kwargs):
with lockutils.lock('singleton_lock', semaphores=cls._semaphores):
if cls not in cls._instances:
cls._instances[cls] = super(Singleton, cls).__call__(
*args, **kwargs)
return cls._instances[cls]

singleton = six.add_metaclass(Singleton)


@singleton
class Myclass():
....


```


写一个通用的非常方便

缺点时候被装饰的类本身也有元类操作时就出错了
@adoal
把 Kong 和 APISIX 也打标准 rpm 包....
@adoal
可以自己做标准 rpm 打包,稍微改动下标准 nginx 打包文件就可以了
%if %{with lua}
%package mod-http-ndk
Group: System Environment/Daemons
Summary: Nginx HTTP ndk module
Requires: nginx = %{epoch}:%{version}-%{release}

%description mod-http-ndk
%{summary}.

%package mod-http-lua
Group: System Environment/Daemons
Summary: Nginx HTTP lua module
Requires: nginx-mod-http-ndk = %{epoch}:%{version}-%{release}
Requires: openresty-luajit = %{luajit_ver}
Requires: openresty-core = %{core_ver}
Provides: lua-nginx-module = %{lua_ver}

%description mod-http-lua
%{summary}.
%endif

----
%if %{with lua}
--add-dynamic-module=./ngx_devel_kit-%{ndk_ver} \
--add-dynamic-module=./lua-nginx-module-%{lua_ver} \
%endif
%if %{with luastream}
--with-stream \
--add-module=./stream-lua-nginx-module-%{lua_stream_ver} \
%else
--with-stream=dynamic \
%endif
126 天前
回复了 mangojiji 创建的主题 数据库 Mybatis 到底是或不是 ORM?为什么?
@XCFOX
ent 已经够好了起码可以定义简单的连表关系了

静态语言没法做那么灵活的
用户才会觉得 Electron 垃圾...只是用户不知道而已
知道 Electron 的用户都是程序员所以产生了程序员觉得 Electron 垃圾的错觉

Electron 的问题是又臃肿又慢,核心就是 js 不够行

程序员写 Electron 方便得 1b 好么,总比用其他东西写 ui 来的快多了
136 天前
回复了 OldCarMan 创建的主题 程序员 是前端改还是后端改?
3. 后端接口都要都要带版本前缀/v1.0 方便更新修 bug,通过多版本接口实现兼容
136 天前
回复了 OldCarMan 创建的主题 程序员 是前端改还是后端改?
1. 用 int 节约带宽就是扯淡,字符串提高开发效率,一眼能看懂的状态用 int 还要想半天
如果后端状态 int 字段本身很多地方都在用了,才考虑用 int 表状态

2.说了 100 便了 了,用 http 重定向用 post 传 get 带 body 就完事
136 天前
回复了 dw2693734d 创建的主题 Ruby on Rails 推荐一个 Admin Panel
主题森林花钱买
直接搜索 admin angular 或者 admin react/vue
143 天前
回复了 JinTianYi456 创建的主题 Java rpc 调用,通常怎么保证一致性?
简单来说用 overtime 来控制超时,而不是用 timeout 来控制超时
143 天前
回复了 JinTianYi456 创建的主题 Java rpc 调用,通常怎么保证一致性?
我说一个....用 ntp 保证各个服务器时间一致,ntp 一搬能保证 128 毫秒以内

所有 rpc 执行数据带上 overtime 时间, 客户端确认超时的时间比 overtime 时间多个 15~30 秒

执行服务器可以通过 overtime 来确认超时
如果你们对外接入多建议 JAVA ,估计很多 SDK 都没提供 go 的版本,到时候超级浪费时间
185 天前
回复了 zhangyl 创建的主题 程序员 钉钉自定义机器人下线了…
回错贴 ORZ
185 天前
回复了 zhangyl 创建的主题 程序员 钉钉自定义机器人下线了…
有啥区别啊...大不了 ngx 里面 lua 多请求一个接口拼起来一起返回不就得了
好奇你写了多久 GO,稍微写一段时间就知道 go 没法区别普通空字段和 null 字段了把
这是 go 语言本身的问题,go 语言傻逼处挺多的,但你居然会因为这个问题在生产环境踩坑

你应该反思下自己 2333 喷 go 没用...解决不,解决方式也很别扭,受不了换语言呀....
232 天前
回复了 ltkun 创建的主题 NAS 求推荐一个 All in One
说多少次了 gen8 改 itx 上 itx 板子最靠谱
直接 zk 或者 etcd 做不就行了....为什么折腾 pg
数据库做锁没法支持连接断开后清理锁,用 expire_at 很别扭的

字段里加个 lokcer 存放 uuid, 这个 uuid 由于获得上锁的客户端生成, 由于这个 uuid 只有上锁的客户端才知道,这样就可以做到过期前只有指定的 locker 才能释放

上锁
update lock set locker = 'fffffffffffffffffffffffffffffffffffff' where id = 'locker-id' and locker is null

放锁
update lock set locker = null where id = 'locker-id' and locker = 'fffffffffffffffffffffffffffffffff'
linux 下 append 写入,是原子性,多进程安全的
你的问题应该不是多进程的安全问题

基于时间的文件归档有问题的话,多半是你们滚日志的时候只有主进程做了重新打开日志文件的操作

正确流程是发信号到进程组,所有进程组内所有进程都重新打开日志文件
1  2  3  4  5  6  7  8  9  10 ... 48  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1010 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 47ms · UTC 19:55 · PVG 03:55 · LAX 12:55 · JFK 15:55
Developed with CodeLauncher
♥ Do have faith in what you're doing.