2024-11-30

爽文

去看了好东西.

坦白说,多少是带着点挑刺的味道去的.
毕竟打着爱情神话和女性题材的气质,多多少少是热度为先了.

看完之后倒是有些新的想法.

某种程度上来说,现在的年轻人或者说声音就像小叶.
只要说点贴心的话就能哄好.

也是那种可以不用很努力了.
留在自己的舒适区避难所小圈子抱团就好.

也并不是说这种知足常乐有什么问题.
但是另一面的小孩特性,或者小孩的另一面特性倒是颇为推敲.

影片结尾的live house镜头叠加学校正式乐队的场景,本以为是打算玩那种不同选择不同mix的手法.

可能是民谣/摇滚背景乐叠加体制一本正经的管弦交响乐团,穿插地下乐队和大会堂表演的对比.
来营造某种不同精彩,甚至哪边更精彩的叙事.

事实上,倒确实也有一点这个意思.
在乐队现场的各种鼓励应援和礼堂里早退刷手机聊聊无几关心的场景的几个镜头.

但是可能不知道是出于什么考虑,这个演绎嘎然而止.

并没有期望中的像之前一样抖开心麻花版的段子,对比一边对成功与另一方的可能落寞或者滑稽.

于是当你想批评它支持非主流叙事的时候,倒显得有点底气不足了.
毕竟这边某种程度上的成功来源于这种张弛有度,或者说左右横跳.

一个比较有意思的点就是女主这个形象的树立.

影院里比较多的大笑也来源于跟她有关的一些场景.

形式上来说,或者说表面上来说,她在构造一个某种形态上典型的进步主义女性视角.
坚强,有能力,叠加单亲开放,以及设定上就是女权运动调查记者的身份.
可以说是属性点满.

观众之乐于敞笑大抵也是来源于这种大女主特性.

然而比较微妙的是当你把铁梅性转一下的话.
大概在出场的几秒就会被评价为爹味普信与油腻了.

有趣的是,导演或者说编剧倒也似乎有意无意地在提示这个关系.
以至于开场在入职点评职场的时候,就直接植入了油腻这个词.

所以当后面连续有意无意地给90%荒谬的衣服似有若无的反复特写的事,多少是有些会心一笑的.

就像你深究设定上从调查记者到自媒体爆款小编的转变也多少有种二度的讽刺在里面.

一个借主编口说的无情的10w+机器,以及眼镜小妹对于出差即旅游的肯定.
叠加直播从invisible women遮脸到复刻直播卖爆款剧本的转变.

让人多少会在女性主义的意义背后打个问号.

尤其如果同时把前夫也性转的话.
大抵就是一般备受口水的丧偶式婚姻和雌竞问题.

从这个角度来说,剧中的男性角色反而更像是一种变装的二度讽刺.

包括前夫的女权理论演绎,以及重复两次的结构性问题.
尤其是鼓手在床上看小肚子的极其女性化风格的演绎.

当然,你也可以理解为是尝试用男权的角度去重放和构造女权语境.
但是显然的,欢乐的观众可能并没有想那么多.

只是觉得是一个颇为爽朗的笑料集合.

角色聚餐的饭桌情节某种程度上来说属于全剧左右横跳的巅峰.
一边是雌竞和女主位的男权女性化视角.
一边则是小孩的反复不想打拳.

交织在一起你很难说是在讽刺什么.

所以有时候觉得,这个剧的Her其实更多的可能是指小叶.

一个本质缺爱就把爱寄托在一切驯服自己的事物上.
外表的不羁叛逆更多是有意无意的跟过去的切断.

就像跟铁梅谈论的时候,自己也不自觉地对母亲时候爱过自己产生怀疑,却又咬死不愿承认.

于是,当你回想第一次说要带小孩的时候,一边受着铁梅扮演的stereotype啰嗦老妈的形象,一边欢乐地送出门喊出妈的注脚的时候,会对编剧的这声妈到底有没二重意思产生遐想.

还有一点比较有意思的是电影中谈电影的部分.

一边是贾樟柯是名人但nobody cares.
一边是对山西平遥之于法国类比的揶揄.

你很难捕捉到这种淡淡的自嘲里,透露的是导演什么样的一种心境.

联想结尾登场那个经典背光造型和时不时穿插的歌曲.
无时不在暧昧一种难以言喻的界限感.

尤其如果考虑四字弟弟在此刻只配作为一种笑料辅佐,而泰勒斯威夫特则承前启后作为一种励志形态.

所以从这个角度来说,牵扯爱情神话倒也不算太离谱.

如果说徐峥是把市井气变成了某种艺术形态的话.
这片大概就是把精致进步打包成了一种可消费的商品.

在一个在即使可以对大多数女性羞辱议题说不的同时,精准地保留了未出过国的原始羞耻感.

这片就像医生之于小叶,除了提供一种难以言喻的情绪价值之外,更会营造一种自己很重要的氛围.

然后可能更诛心的是,没人会那么有空在意你这种戳破意识过剩的句子确实在结尾由小叶本人说出.

可能这也是这片有意思的一点.

在所谓被作为现代女性意识对立面的各个角色形象都有意无意地也在塑造某种醒世名言.

甚至于医生在阳台上的最后一句台词也颇为值得玩味.

毕竟爱就行了.

就像可能很多人曾经嘲讽起点爽文,乏味龙傲天,看不起霸总小视频一样.

多多少少,每个人都在享受属于自己的一套爽文.






2024-11-24

能用就行

前段时间做一些小性能优化相关的东西.

然后想起了go的benchmark工具.

起因是spark/scala的一个json解析的micro benchamrk问题.

一个utf16转ut8的过程总是有着不到7%左右的差距.
后来同事提醒一个allocation的细节才明白缘由.

大致就是特定test case下,一个缓存开启/命中带来的有没有新allocation的一个副作用.

想到go是因为想起go的benchmark,相比jmh的throughput模式,还多了alloc的相关统计.

大概这就是所谓的工程细节.
成熟度和经验的一些不显著的不易被察觉的点.

如果对应的jmh有相关指标的话,可能就比较一目了然了.

然后其他的也是一些micro或者说对应scale范围下才显现的问题.

一个是scala的type check和类型推导的问题.

代码和语法层面的显示typecheck/cast带来的安全性comfortable的代价是一些runtime时候的性能损失,根据写法的不同有些还是不是neglectable的.
而换一些写法让compiler happy地能够做出type inference的,可以把这部分的开销抹去.

而比较讽刺的是本质上来说,由于类型擦除这个jvm特性,两者在某种程度上的逻辑其实都是object到处裸奔.
区别只不过是runtime check还是compile time check罢了.

这时候也就又些理解c++的一些复杂语法和奇技淫巧了.

就像理论上来说,都是一回事.
但工程实现的不同,可能就是所谓的差距了.

类似的还有scala functional风格的另一面.
一个foreach里buffer append的风格和一个纯map/flatmap的风格在性能上的hotspot也是有些差异的.

当然,这部分差异可能来源于对结果取值的处理场景.
毕竟一定程度上来说,后者是个compress的lazy evaluator.
在只需要特定subset元素的时候,确实会有一定程度上的作弊效果.

因为只需要evaluate一部分就行了.

这点倒是想起来以前pytorch跟tensorflow的设计差异了.
后者基于graph的lazy特定也让前者的所见即得带来习惯上的使用冲突.

毕竟lazy对于debug print有时候还是不太友好的.
尤其一定程度上来说,语义是不等价的.

其他的一些就是更low level的可观测性问题了.

就像开头的allocation的问题.

后面case by case地看了下,有显著性能差异的时候还是buffer比较大的时候的情况.

一个稍微简单的intuition解释大概就是small allocation在runtime可能更容易被更底层的memory management的cache命中,可能是gc的一些特殊case,甚至malloc的一些具体实现都可能对small allocation可以更容易地被reuse/命中.

而稍微大点的allocation则很容易命中到page fault从而引发一些application层面看不到的更重的差异调用链了.

这个在latency到micro second层面就算比较显著了.

所有反过来说,如果只是毫秒级,那可能这方面的差异优化又显得没那么重要和必要了.
这也就是前面说的scale的问题.

另外一个相关的就是cache这个概念的意义的问题了.

比较初期的prototype的时候,也考虑过加一些cache policy.
直接用guava的结果出来之后自己都笑了.

后来手写了一些简单策略看效果也并没有特别显著的提升.

本质上来说,还是scale的问题.
因为caceh逻辑可能在复杂度/开销方面跟主逻辑已经具有相当的可比性了.

所以即使在命中的场景下,能明显地提提升,但回退到miss的时候,回退可能更显著.

这也就是有时候会开始觉得,cache并不难算是一种算法层面的优化方式.
或者说它是一种比较speculate的优化选择.

形式上来说,天然就带有某种不确定性.

剩下的一个题外话就是关于内存数据结构layout的问题了.

以前刚接触Arrow的时候也颇为嗤之以鼻.
觉得算是可以有,但意义没宣传得那么大.

现在觉得,就像utf16转utf8这种.
本质上来说还是一位representation不一致引入的额外routine.

类似的还有jni接口带来的overhead.

这些借用一个名字就是non-unify memory access带来的代价.

所以如果像Arrow或者其他adoption比较广的message格式,多多少少还是能避免这种也算是碎片化带来的问题的.

当然,剩下的问题可能就是都想解决碎片化带来的进一步碎片化问题.

这可能就是工程化的另一面.

可观测性带来的避免重复性驱动,然后就是新的工具链在试图更广而全地解决问题.
也就是所谓的silver bullet构想.

比较现实的例子可能就是堪称日新月异的前端工具链生态.
可能隔一两个月就有一套新的概念和东西出来.

然后相似的就是不管实现目标如何,最后还是要兼容老的一套.

在生态和工程化创新之间举步维艰.

于是在回头看褒贬不一的对于go大道至简的哲学揶揄可能就显得不那么充分了.

可能它的工程化实践的已经是考虑了历史债务的成本问题了.

毕竟之前尝试重构某东西的时候也发觉了.
有时候重写本身并不难,难的可能是兼容性/一致性问题.

老旧系统/工具链的价值一方面固然是能work.
另一方面更多的是对于现有使用场景的覆盖度问题.

尤其有些时候一些bug可能变成了某种形式的feature.
以及有些衍生工具链和平台已经依赖了某些难以分类为bug还是feature的东西.


就像一个社会系统.
纷繁链条,你也很难评价一个切面的功过是非.

能用就行可能是一种需要特别角度去看待的工程哲学.

爽文

去看了好东西. 坦白说,多少是带着点挑刺的味道去的. 毕竟打着爱情神话和女性题材的气质,多多少少是热度为先了. 看完之后倒是有些新的想法. 某种程度上来说,现在的年轻人或者说声音就像小叶. 只要说点贴心的话就能哄好. 也是那种可以不用很努力了. 留在自己的舒适区避难所小圈子抱团就...